[Pkg-privacy-commits] [pidgin-otr] 74/255: 2009-03-18

Ximin Luo infinity0 at moszumanska.debian.org
Sat Aug 22 12:51:25 UTC 2015


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch experimental
in repository pidgin-otr.

commit af9bc8f65d847f2d08a11178d0dbb0c1c6e53596
Author: cypherpunk <cypherpunk>
Date:   Tue Apr 28 13:32:30 2009 +0000

    2009-03-18
    
    	* po/sv.po: Swedish translation from Daniel Nylander
    	<po at danielnylander.se>
    
    2009-01-18
    
    	* po/pl.po: Polish translation from Paweł Czochański
    	<czochanski at gmail.com>
    
    2008-08-15
    
    	* otr-plugin.c: Willy Lew's updates to reflect libotr 4.0.0 API
---
 AUTHORS             |   2 +-
 ChangeLog           |  14 ++
 README              |   5 +-
 configure.ac        |   4 +-
 dialogs.c           |   5 +-
 dialogs.h           |   5 +-
 gtk-dialog.c        |   5 +-
 gtk-dialog.h        |   5 +-
 gtk-ui.c            |   5 +-
 gtk-ui.h            |   5 +-
 otr-icons.h         |   5 +-
 otr-plugin.c        | 414 ++++++++++++++++++++++++++++--------
 otr-plugin.h        |   5 +-
 po/{hu.po => pl.po} | 314 +++++++++++++--------------
 po/sv.po            | 595 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 tooltipmenu.c       |   5 +-
 tooltipmenu.h       |   5 +-
 ui.c                |   5 +-
 ui.h                |   5 +-
 19 files changed, 1124 insertions(+), 284 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 091315a..d9c4f0e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -2,7 +2,7 @@ Off-the-Record Messaging plugin for pidgin
 
 Authors:
 
-    Ian Goldberg, Rob Smits, Chris Alexander, Nikita Borisov
+    Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, Nikita Borisov
     <otr at cypherpunks.ca>
 
 See the README file for mailing list information
diff --git a/ChangeLog b/ChangeLog
index afa442b..6df9bc2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,22 @@
+2009-03-18
+
+	* po/sv.po: Swedish translation from Daniel Nylander
+	<po at danielnylander.se>
+
+2009-01-18
+
+	* po/pl.po: Polish translation from Paweł Czochański
+	<czochanski at gmail.com>
+
 2008-09-24
 
 	* po/it.po: Italian translation from Vincenzo Reale
 	<smart2128 at baslug.org>.
 
+2008-08-15
+
+	* otr-plugin.c: Willy Lew's updates to reflect libotr 4.0.0 API
+
 2008-08-07
 
 	* otr-plugin.c:
diff --git a/README b/README
index 326ce90..e208e8e 100644
--- a/README
+++ b/README
@@ -300,8 +300,9 @@ The Off-the-Record Messaging plugin for pidgin is covered by the following
 (GPL) license:
 
     Off-the-Record Messaging plugin for pidgin
-    Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
-                             Chris Alexander, Nikita Borisov
+    Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+                             Chris Alexander, Willy Lew,
+			     Nikita Borisov
                              <otr at cypherpunks.ca>
 
 
diff --git a/configure.ac b/configure.ac
index b64de85..73440c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce configure.
 
-AC_INIT(pidgin-otr, 3.2.0)
+AC_INIT(pidgin-otr, 4.0.0)
 
 AM_CONFIG_HEADER(config.h)
 
@@ -24,7 +24,7 @@ GETTEXT_PACKAGE=pidgin-otr
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
 
-ALL_LINGUAS="ar de es fr hu it nl ru sk"
+ALL_LINGUAS="ar de es fr hu it pl nl ru sk sv"
 AM_GLIB_GNU_GETTEXT
 
 AC_OUTPUT([Makefile po/Makefile.in])
diff --git a/dialogs.c b/dialogs.c
index 9acf422..4a4e99e 100644
--- a/dialogs.c
+++ b/dialogs.c
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/dialogs.h b/dialogs.h
index 204adef..bf89368 100644
--- a/dialogs.h
+++ b/dialogs.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/gtk-dialog.c b/gtk-dialog.c
index 60fdb8a..27df1c6 100644
--- a/gtk-dialog.c
+++ b/gtk-dialog.c
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/gtk-dialog.h b/gtk-dialog.h
index 50253fa..07152b1 100644
--- a/gtk-dialog.h
+++ b/gtk-dialog.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/gtk-ui.c b/gtk-ui.c
index 46b2990..29cc065 100644
--- a/gtk-ui.c
+++ b/gtk-ui.c
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/gtk-ui.h b/gtk-ui.h
index 4811211..8797850 100644
--- a/gtk-ui.h
+++ b/gtk-ui.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/otr-icons.h b/otr-icons.h
index 64a83cf..f9ff68a 100644
--- a/otr-icons.h
+++ b/otr-icons.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/otr-plugin.c b/otr-plugin.c
index 4713516..26c7a17 100644
--- a/otr-plugin.c
+++ b/otr-plugin.c
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -122,6 +123,48 @@ void otrg_plugin_inject_message(PurpleAccount *account, const char *recipient,
     serv_send_im(connection, recipient, message, 0);
 }
 
+/* Display a notification message for a particular accountname /
+ * protocol / username conversation. */
+static void notify(void *opdata, OtrlNotifyLevel level,
+        const char *accountname, const char *protocol, const char *username,
+        const char *title, const char *primary, const char *secondary)
+{
+    PurpleNotifyMsgType purplelevel = PURPLE_NOTIFY_MSG_ERROR;
+
+    switch (level) {
+        case OTRL_NOTIFY_ERROR:
+            purplelevel = PURPLE_NOTIFY_MSG_ERROR;
+            break;
+        case OTRL_NOTIFY_WARNING:
+            purplelevel = PURPLE_NOTIFY_MSG_WARNING;
+            break;
+        case OTRL_NOTIFY_INFO:
+            purplelevel = PURPLE_NOTIFY_MSG_INFO;
+            break;
+    }
+
+    otrg_dialog_notify_message(purplelevel, accountname, protocol,
+            username, title, primary, secondary);
+}
+
+/* Display an OTR control message for a particular accountname /
+ * protocol / username conversation.  If force_create is non-zero and
+ * if the corresponding conversation window is not present, a new
+ * conversation window will be created and the message will be displayed
+ * there. Returns 0 if message is successfully displayed. */
+static int display_otr_message(void *opdata, const char *accountname,
+        const char *protocol, const char *username, const char *msg,
+        int force_create)
+{
+    return otrg_dialog_display_otr_message(accountname, protocol,
+            username, msg, force_create);
+}
+
+static void log_message(void *opdata, const char *message)
+{
+    purple_debug_info("otr", message);
+}
+
 static OtrlPolicy policy_cb(void *opdata, ConnContext *context)
 {
     PurpleAccount *account;
@@ -137,19 +180,6 @@ static OtrlPolicy policy_cb(void *opdata, ConnContext *context)
     return prefs.policy;
 }
 
-static const char *protocol_name_cb(void *opdata, const char *protocol)
-{
-    PurplePlugin *p = purple_find_prpl(protocol);
-    if (!p) return NULL;
-    return p->info->name;
-}
-
-static void protocol_name_free_cb(void *opdata, const char *protocol_name)
-{
-    /* Do nothing, since we didn't actually allocate any memory in
-     * protocol_name_cb. */
-}
-
 /* Generate a private key for the given accountname/protocol */
 void otrg_plugin_create_privkey(const char *accountname,
 	const char *protocol)
@@ -228,35 +258,6 @@ static void inject_message_cb(void *opdata, const char *accountname,
     otrg_plugin_inject_message(account, recipient, message);
 }
 
-static void notify_cb(void *opdata, OtrlNotifyLevel level,
-	const char *accountname, const char *protocol, const char *username,
-	const char *title, const char *primary, const char *secondary)
-{
-    PurpleNotifyMsgType purplelevel = PURPLE_NOTIFY_MSG_ERROR;
-
-    switch (level) {
-	case OTRL_NOTIFY_ERROR:
-	    purplelevel = PURPLE_NOTIFY_MSG_ERROR;
-	    break;
-	case OTRL_NOTIFY_WARNING:
-	    purplelevel = PURPLE_NOTIFY_MSG_WARNING;
-	    break;
-	case OTRL_NOTIFY_INFO:
-	    purplelevel = PURPLE_NOTIFY_MSG_INFO;
-	    break;
-    }
-
-    otrg_dialog_notify_message(purplelevel, accountname, protocol,
-	    username, title, primary, secondary);
-}
-
-static int display_otr_message_cb(void *opdata, const char *accountname,
-	const char *protocol, const char *username, const char *msg)
-{
-    return otrg_dialog_display_otr_message(accountname, protocol,
-	    username, msg, 0);
-}
-
 static void update_context_list_cb(void *opdata)
 {
     otrg_ui_update_keylist();
@@ -294,11 +295,6 @@ static void still_secure_cb(void *opdata, ConnContext *context, int is_reply)
     }
 }
 
-static void log_message_cb(void *opdata, const char *message)
-{
-    purple_debug_info("otr", message);
-}
-
 static int max_message_size_cb(void *opdata, ConnContext *context)
 {
     void* lookup_result = g_hash_table_lookup(mms_table, context->protocol);
@@ -308,33 +304,286 @@ static int max_message_size_cb(void *opdata, ConnContext *context)
         return *((int*)lookup_result);
 }
 
-static void handle_smp_event(void *opdata, OtrlSMPEvent smp_event, 
+static const char* otr_error_message_cb(void *opdata, ConnContext *context,
+        OtrlErrorCode err_code)
+{
+    char *err_msg = NULL;
+    switch (err_code)
+    {
+    case OTRL_ERRCODE_NONE :
+	break;
+    case OTRL_ERRCODE_ENCRYPTION_ERROR :
+        err_msg = g_strdup(_("Error occurred encrypting message."));
+        break;
+    case OTRL_ERRCODE_MSG_NOT_IN_PRIVATE :
+        if (context) {
+            err_msg = g_strdup_printf(_("You sent encrypted data to %s, who"
+                " wasn't expecting it."), context->accountname);
+        }
+        break;
+    case OTRL_ERRCODE_MSG_UNREADABLE :
+        err_msg = g_strdup(_("You transmitted an unreadable encrypted message."));
+        break;
+    case OTRL_ERRCODE_MSG_MALFORMED :
+        err_msg = g_strdup(_("You transmitted a malformed data message."));
+        break;
+    }
+    return err_msg;
+}
+
+static void otr_error_message_free_cb(void *opdata, const char *err_msg)
+{
+    if (err_msg) g_free((char*)err_msg);
+}
+
+static const char *resent_msg_prefix_cb(void *opdata, ConnContext *context)
+{
+	return g_strdup(_("[resent]"));
+}
+
+static void resent_msg_prefix_free_cb(void *opdata, const char *prefix)
+{
+	if (prefix) g_free((char*)prefix);
+}
+
+static void handle_smp_event_cb(void *opdata, OtrlSMPEvent smp_event,
         ConnContext *context, unsigned short progress_percent,
 	char *question)
 {
     if (!context) return;
-    switch (smp_event) 
+    switch (smp_event)
     {
+        case OTRL_SMPEVENT_NONE :
+	    break;
         case OTRL_SMPEVENT_ASK_FOR_SECRET :
             otrg_dialog_socialist_millionaires(context);
             break;
         case OTRL_SMPEVENT_ASK_FOR_ANSWER :
             otrg_dialog_socialist_millionaires_q(context, question);
             break;
-        case OTRL_SMPEVENT_CHEATED :  
+        case OTRL_SMPEVENT_CHEATED :
             otrg_plugin_abort_smp(context);
 	    /* FALLTHROUGH */
         case OTRL_SMPEVENT_IN_PROGRESS :
-        case OTRL_SMPEVENT_SUCCESS : 
-        case OTRL_SMPEVENT_FAILURE :  
-        case OTRL_SMPEVENT_ABORT :  
+        case OTRL_SMPEVENT_SUCCESS :
+        case OTRL_SMPEVENT_FAILURE :
+        case OTRL_SMPEVENT_ABORT :
             otrg_dialog_update_smp(context,
 		    smp_event, ((gdouble)progress_percent)/100.0);
             break;
-        case OTRL_SMPEVENT_ERROR :  
+        case OTRL_SMPEVENT_ERROR :
             otrg_plugin_abort_smp(context);
             break;
-    }   
+    }
+}
+
+static void handle_msg_event_cb(void *opdata, OtrlMessageEvent msg_event,
+        ConnContext *context, const char* message, gcry_error_t err)
+{
+    if (!context) return;
+    char *buf;
+    const char *format;
+
+    switch (msg_event)
+    {
+        case OTRL_MSGEVENT_NONE:
+	    break;
+        case OTRL_MSGEVENT_ENCRYPTION_REQUIRED:
+            if (display_otr_message(opdata, context->accountname,
+                    context->protocol, context->username, _("Attempting to start a "
+                    "private conversation..."), 1)) {
+                format = _("You attempted to send an "
+                "unencrypted message to %s");
+                buf = malloc(strlen(format) +
+                    strlen(context->username) - 1);
+                if (buf) {
+                    sprintf(buf, format, context->username);
+                    notify(opdata, OTRL_NOTIFY_WARNING, context->accountname,
+                        context->protocol, context->username, _("OTR Policy Violation"),
+                        buf,
+                        _("Unencrypted messages to this recipient are "
+                        "not allowed.  Attempting to start a private "
+                        "conversation.\n\nYour message will be "
+                        "retransmitted when the private conversation "
+                        "starts."));
+                    free(buf);
+                }
+            }
+            break;
+        case OTRL_MSGEVENT_ENCRYPTION_ERROR:
+            if (display_otr_message(opdata, context->accountname,
+                context->protocol, context->username, _("An error occurred when "
+                "encrypting your message.  The message was not sent."), 1)) {
+                notify(opdata, OTRL_NOTIFY_ERROR,
+                    context->accountname, context->protocol, context->username,
+                    _("Error encrypting message"),
+                    _("An error occurred when encrypting your message"),
+                    _("The message was not sent."));
+            }
+            break;
+        case OTRL_MSGEVENT_CONNECTION_ENDED:
+            if (display_otr_message(opdata, context->accountname,
+                context->protocol, context->username, _("Your message was not sent.  "
+                "Either end your private conversation, or restart it."), 1)) {
+                format = _("%s has already closed his/her private "
+                    "connection to you");
+                buf = malloc(strlen(format) + strlen(context->username) - 1);
+                if (buf) {
+                    sprintf(buf, format, context->username);
+                    notify(opdata, OTRL_NOTIFY_ERROR,
+                        context->accountname, context->protocol, context->username,
+                        _("Private connection closed"), buf,
+                        _("Your message was not sent.  Either close your "
+                        "private connection to him, or refresh it."));
+                    free(buf);
+                }
+            }
+            break;
+        case OTRL_MSGEVENT_SETUP_ERROR:
+            if (!err) {
+                err = GPG_ERR_INV_VALUE;
+            }
+            format = _("Error setting up private conversation: %s");
+            const char *strerr;
+
+            switch(gcry_err_code(err)) {
+                case GPG_ERR_INV_VALUE:
+                    strerr = _("Malformed message received");
+                    break;
+                default:
+                    strerr = gcry_strerror(err);
+                    break;
+            }
+            buf = malloc(strlen(format) + strlen(strerr) - 1);
+            if (buf) {
+                sprintf(buf, format, strerr);
+            }
+            if (display_otr_message(opdata, context->accountname,
+                    context->protocol, context->username, buf, 1)) {
+                notify(opdata, OTRL_NOTIFY_ERROR, context->accountname,
+                    context->protocol, context->username, "OTR error",
+                    buf, NULL);
+            }
+            free(buf);
+            break;
+        case OTRL_MSGEVENT_MSG_REFLECTED:
+            if (display_otr_message(opdata,
+                context->accountname, context->protocol,
+                context->username,
+                _("We are receiving our own OTR messages.  "
+                "You are either trying to talk to yourself, "
+                "or someone is reflecting your messages back "
+                "at you."), 1))  {
+                notify(opdata, OTRL_NOTIFY_ERROR,
+                    context->accountname, context->protocol,
+                    context->username, "OTR Error",
+                    _("We are receiving our own OTR messages."),
+                    _("You are either trying to talk to yourself, "
+                    "or someone is reflecting your messages back "
+                    "at you."));
+            }
+            break;
+        case OTRL_MSGEVENT_MSG_RESENT:
+            format = _("<b>The last message to %s was resent.</b>");
+            buf = malloc(strlen(format) +
+                strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                display_otr_message(opdata, context->accountname,
+                        context->protocol, context->username, buf, 1);
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_RCVDMSG_NOT_IN_PRIVATE:
+            format = _("<b>The encrypted message received from %s is "
+                "unreadable, as you are not currently communicating "
+                "privately.</b>");
+            buf = malloc(strlen(format) +
+                strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                display_otr_message(opdata, context->accountname,
+                        context->protocol, context->username, buf, 1);
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_RCVDMSG_UNREADABLE:
+            format = _("We received an unreadable "
+                "encrypted message from %s.");
+            buf = malloc(strlen(format) + strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                if (display_otr_message(opdata,
+                    context->accountname, context->protocol,
+                    context->username, buf, 1)) {
+                    notify(opdata, OTRL_NOTIFY_ERROR,
+                        context->accountname, context->protocol,
+                        context->username, "OTR Error", buf, NULL);
+                }
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_RCVDMSG_MALFORMED:
+            format =  _("We received a malformed data "
+                "message from %s.");
+            buf = malloc(strlen(format) + strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                if (display_otr_message(opdata,
+                    context->accountname, context->protocol,
+                    context->username, buf, 1)) {
+                    notify(opdata, OTRL_NOTIFY_ERROR,
+                        context->accountname, context->protocol,
+                        context->username, "OTR Error", buf, NULL);
+                }
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_LOG_HEARTBEAT_RCVD:
+            format = _("Heartbeat received from %s.\n");
+            buf = malloc(strlen(format) + strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                log_message(opdata, buf);
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_LOG_HEARTBEAT_SENT:
+            format = _("Heartbeat sent to %s.\n");
+            buf = malloc(strlen(format) + strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                log_message(opdata, buf);
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_RCVDMSG_GENERAL_ERR:
+            display_otr_message(opdata, context->accountname,
+                    context->protocol, context->username, message, 1);
+            break;
+        case OTRL_MSGEVENT_RCVDMSG_UNENCRYPTED:
+            format = _("<b>The following message received "
+                "from %s was <i>not</i> encrypted: [</b>%s<b>]</b>");
+            buf = malloc(strlen(format) + strlen(context->username)
+                + strlen(message) - 3);
+                /* Remove "%s%s", add username + message + '\0' */
+            if (buf) {
+                sprintf(buf, format, context->username, message);
+                display_otr_message(opdata, context->accountname,
+                    context->protocol, context->username, buf, 1);
+                free(buf);
+            }
+            break;
+        case OTRL_MSGEVENT_RCVDMSG_UNRECOGNIZED:
+            format = _("Unrecognized OTR message received from %s.\n");
+            buf = malloc(strlen(format) + strlen(context->username) - 1);
+            if (buf) {
+                sprintf(buf, format, context->username);
+                log_message(opdata, buf);
+                free(buf);
+            }
+            break;
+    }
 }
 
 #ifdef DUMP_RECEIVED_SYMKEY
@@ -361,17 +610,12 @@ static OtrlMessageAppOps ui_ops = {
     create_privkey_cb,
     is_logged_in_cb,
     inject_message_cb,
-    notify_cb,
-    display_otr_message_cb,
     update_context_list_cb,
-    protocol_name_cb,
-    protocol_name_free_cb,
     confirm_fingerprint_cb,
     write_fingerprints_cb,
     gone_secure_cb,
     gone_insecure_cb,
     still_secure_cb,
-    log_message_cb,
     max_message_size_cb,
     NULL,                   /* account_name */
     NULL,                   /* account_name_free */
@@ -380,7 +624,12 @@ static OtrlMessageAppOps ui_ops = {
 #else
     NULL,		    /* received_symkey */
 #endif
-    handle_smp_event
+    otr_error_message_cb,
+    otr_error_message_free_cb,
+    resent_msg_prefix_cb,
+    resent_msg_prefix_free_cb,
+    handle_smp_event_cb,
+    handle_msg_event_cb
 };
 
 static void process_sending_im(PurpleAccount *account, char *who,
@@ -398,26 +647,17 @@ static void process_sending_im(PurpleAccount *account, char *who,
     username = strdup(purple_normalize(account, who));
 
     err = otrl_message_sending(otrg_plugin_userstate, &ui_ops, NULL,
-	    accountname, protocol, username, *message, NULL, &newmessage,
-	    NULL, NULL);
+	    accountname, protocol, username, message, NULL, &newmessage,
+	    OTRL_FRAGMENT_SEND_ALL_BUT_LAST, NULL, NULL, NULL, NULL);
+
+    if (err) {
+    	/* Do not send out plain text */
+    	char *ourm = strdup("");
+    	free(*message);
+    	*message = ourm;
+    }
 
-    if (err && newmessage == NULL) {
-	/* Be *sure* not to send out plaintext */
-	char *ourm = strdup("");
-	free(*message);
-	*message = ourm;
-    } else if (newmessage) {
-	/* Fragment the message if necessary, and send all but the last
-	 * fragment over the network.  Pidgin will send the last
-	 * fragment for us. */
-	ConnContext *context = otrl_context_find(otrg_plugin_userstate,
-		username, accountname, protocol, 0, NULL, NULL, NULL);
-	free(*message);
-	*message = NULL;
-	err = otrl_message_fragment_and_send(&ui_ops, NULL, context,
-		newmessage, OTRL_FRAGMENT_SEND_ALL_BUT_LAST, message);
 	otrl_message_free(newmessage);
-    }
     free(username);
 }
 
@@ -473,18 +713,18 @@ void otrg_plugin_send_default_query_conv(PurpleConversation *conv)
     const char *username, *accountname;
     char *msg;
     OtrgUiPrefs prefs;
-    
+
     account = purple_conversation_get_account(conv);
     accountname = purple_account_get_username(account);
     username = purple_conversation_get_name(conv);
-    
+
     otrg_ui_get_prefs(&prefs, account, username);
     msg = otrl_proto_default_query_msg(accountname, prefs.policy);
     otrg_plugin_inject_message(account, username, msg ? msg : "?OTRv2?");
     free(msg);
 }
 
-static gboolean process_receiving_im(PurpleAccount *account, char **who, 
+static gboolean process_receiving_im(PurpleAccount *account, char **who,
         char **message, int *flags, void *m)
 {
     char *newmessage = NULL;
@@ -504,7 +744,7 @@ static gboolean process_receiving_im(PurpleAccount *account, char **who,
 
     res = otrl_message_receiving(otrg_plugin_userstate, &ui_ops, NULL,
 	    accountname, protocol, username, *message,
-	    &newmessage, &tlvs, NULL, NULL);
+	    &newmessage, &tlvs, NULL, NULL, NULL, NULL);
 
     if (newmessage) {
 	char *ourm = malloc(strlen(newmessage) + 1);
@@ -742,7 +982,7 @@ static void mms_read_FILEp(FILE *mmsf, GHashTable *ght)
 	if (!eol) eol = strchr(mms, '\n');
 	if (!eol) continue;
 	*eol = '\0';
-	
+
 	prot_in_table = strdup(protocol);
 	mms_in_table = malloc(sizeof(int));
 	*mms_in_table = atoi(mms);
@@ -950,7 +1190,7 @@ static PurplePluginInfo info =
 	NULL,                                             /* description    */
 	                                                  /* author         */
 	"Ian Goldberg, Rob Smits,\n"
-	    "\t\t\tChris Alexander, Nikita Borisov\n"
+	    "\t\t\tChris Alexander, Willy Lew, Nikita Borisov\n"
 	    "\t\t\t<otr at cypherpunks.ca>",
 	"http://otr.cypherpunks.ca/",                     /* homepage       */
 
diff --git a/otr-plugin.h b/otr-plugin.h
index fbbd3f1..97afced 100644
--- a/otr-plugin.h
+++ b/otr-plugin.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/po/hu.po b/po/pl.po
similarity index 59%
copy from po/hu.po
copy to po/pl.po
index 566f875..f1e4ddb 100644
--- a/po/hu.po
+++ b/po/pl.po
@@ -1,31 +1,30 @@
-# translation of hu.po to Hungarian
+# Off-the-Record Messaging plugin for pidgin.
 # Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
 #                          Chris Alexander, Nikita Borisov
 # This file is distributed under the same license as the pidgin-otr package.
+# Paweł Czochański <czochanski at gmail.com>, 2009.
 #
-# Mate Ory <orymate at gmail.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: hu\n"
+"Project-Id-Version: pidgin-otr 3.2.0-de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-11 16:18-0400\n"
-"PO-Revision-Date: 2008-06-08 19:05+0200\n"
-"Last-Translator: Mate Ory <orymate at gmail.com>\n"
-"Language-Team: Hungarian <ubuntu-l10n-hu at lists.ubuntu.com>\n"
+"POT-Creation-Date: 2008-06-12 00:34+0200\n"
+"PO-Revision-Date: 2008-05-28 09:12+0200\n"
+"Last-Translator: Paweł Czochański <czochanski at gmail.com>\n"
+"Language-Team: Paweł Czochański <czochanski at gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
 #: ../gtk-dialog.c:291 ../gtk-dialog.c:1144 ../gtk-dialog.c:1148
 #: ../gtk-dialog.c:1310 ../gtk-dialog.c:1488 ../gtk-dialog.c:1669
 #: ../gtk-dialog.c:1772 ../gtk-dialog.c:1863 ../gtk-dialog.c:2309
 msgid "?lang=en"
-msgstr "?lang=hu"
+msgstr "?lang=pl"
 
 #: ../gtk-dialog.c:440 ../gtk-dialog.c:2043 ../gtk-dialog.c:2517
 msgid "_What's this?"
-msgstr "_Mi ez?"
+msgstr "_Co to jest?"
 
 #: ../gtk-dialog.c:475
 msgid ""
@@ -34,9 +33,10 @@ msgid ""
 "indicated below.  To authenticate to your buddy, enter the answer and click "
 "OK."
 msgstr ""
-"A partnere el szeretné dönteni, hogy valóban azzal beszél-e, akinek ön magát "
-"állítja. Feltette az alábbi kérdést. A hitelesítéshez válaszolja meg, majd "
-"válassza az OK gombot."
+"Twój współrozmówca próbuje sprawdzić, czy rzeczywiście rozmawia z tobą, "
+"czy może z kimś kto podszywa się pod ciebie. By to sprawdzić pragnie zadać ci "
+"poniższe pytanie. By uwierzytelnić się wpisz poprawną odpowiedź i kliknij "
+"OK."
 
 #: ../gtk-dialog.c:482
 msgid ""
@@ -45,26 +45,26 @@ msgid ""
 "your buddy to enter the answer too.  If the answers don't match, then you "
 "may be talking to an imposter."
 msgstr ""
-"A kérdéssel történő hitelesítéshez válasszon egy csak a partnere és ön által "
-"ismert titkot. Adja meg ezt egy kérdés és egy válasz formájában, majd várja "
-"meg, míg a partner is így tesz. Ha a válaszok nem egyeznek meg, lehetséges, "
-"hogy egy szélhámossal cseveg."
+"By uwierzytelnić rozmowę wymyśl pytanie na które odpowiedź znana jest tylko "
+"tobie i twojemu współrozmówcy. Wpisz swoje pytanie i odpowiedź, a następnie "
+"zaczekaj aż twój współrozmówca poda własną odpowiedź. Jeżeli odpowiedzi "
+"nie będą zgodne ze sobą może to oznaczać, że rozmawiasz z oszustem."
 
 #: ../gtk-dialog.c:500
 msgid "This is the question asked by your buddy:"
-msgstr "A következő kérdést tette fel a partnere:"
+msgstr "Pytanie zadane przez twojego współrozmówcy to:"
 
 #: ../gtk-dialog.c:503
 msgid "Enter question here:"
-msgstr "Adja meg a kérdést:"
+msgstr "Tu wpisz swoje pytanie:"
 
 #: ../gtk-dialog.c:534 ../gtk-dialog.c:618
 msgid "This buddy is already authenticated."
-msgstr "A partner már hitelesítve van."
+msgstr "Ten rozmówca jest już uwierzytelniony."
 
 #: ../gtk-dialog.c:546
 msgid "Enter secret answer here (case sensitive):"
-msgstr "Adja meg a (kis- és nagybetűérzékeny) titkos választ:"
+msgstr "Tu wpisz odpowiedź na pytanie: (wielkość liter ma znaczenie)"
 
 #: ../gtk-dialog.c:587
 msgid ""
@@ -72,13 +72,13 @@ msgid ""
 "secret, then wait for your buddy to enter it too.  If the secrets don't "
 "match, then you may be talking to an imposter."
 msgstr ""
-"A hitelesítéshez válasszon egy csak a partnere és ön által ismert titkot. "
-"Adja meg ezt, majd várja meg, míg a partner is így tesz. Ha a titkok nem "
-"egyeznek meg, lehetséges, hogy egy szélhámossal cseveg."
+"By uwierzytelnić rozmowę wybierz sekret znany jedynie tobie i twojemu współrozmówcy. "
+"Wpisz ten sekret i zaczekaj aż twój współrozmówca również go wprowadzi. Jeżeli "
+"wprowadzone sekrety nie będą się zgadzać, może to oznaczać, że rozmawiasz z oszustem."
 
 #: ../gtk-dialog.c:601
 msgid "Enter secret here:"
-msgstr "Adja meg a titkot:"
+msgstr "Tu wprowadź sekret:"
 
 #: ../gtk-dialog.c:652 ../gtk-dialog.c:1477 ../gtk-dialog.c:1530
 msgid ""
@@ -86,27 +86,27 @@ msgid ""
 "authenticated channel, such as the telephone or GPG-signed email.  Each of "
 "you should tell your fingerprint to the other."
 msgstr ""
-"Az ujjlenyomat ellenőrzéséhez vegye fel a kapcsolatot egy <i>másik</i> "
-"hiteles csatornán, például telefonon vagy digitálisan aláírt elektronikus "
-"levélben. Mindkét fél meg kell adja a saját ujjlenyomatát."
+"By zweryfikować klucz, skontaktuj się ze swoim współrozmówcą "
+"wykorzystując jakiś <i>inny</i> uwierzytelniony kanał, jak np. telefon lub email z podpisem GPG, "
+"i wymieńcie się swoimi kluczami."
 
 #: ../gtk-dialog.c:656 ../gtk-dialog.c:1481 ../gtk-dialog.c:1534
 msgid ""
 "If everything matches up, you should indicate in the above dialog that you "
 "<b>have</b> verified the fingerprint."
 msgstr ""
-"Amennyiben minden egyezik, a fenti ablakban válassza, hogy <i>meggyőződött</"
-"i> az ujjlenyomat hitelességéről."
+"Jeżeli wszystko się zgodzi, powyższe okno powinno zasygnalizować ci, że "
+"weryfikacja przebiegła <i>pomyślnie</i>."
 
 #: ../gtk-dialog.c:667 ../gtk-dialog.c:1519
 msgid "[none]"
-msgstr "[nincs]"
+msgstr "[brak]"
 
 #: ../gtk-dialog.c:674 ../gtk-dialog.c:1032 ../gtk-dialog.c:1526
 #: ../gtk-dialog.c:1577 ../gtk-ui.c:181 ../otr-plugin.c:116
 #: ../otr-plugin.c:213 ../ui.c:111
 msgid "Unknown"
-msgstr "Ismeretlen"
+msgstr "Nieznany"
 
 #: ../gtk-dialog.c:675
 #, c-format
@@ -117,82 +117,82 @@ msgid ""
 "Purported fingerprint for %s:\n"
 "%s\n"
 msgstr ""
-"Az ön (%s, %s) ujjlenyomata:\n"
+"Twój klucz, %s (%s):\n"
 "%s\n"
 "\n"
-"%s feltételezett ujjlenyomata:\n"
+"Rzekomy klucz %s:\n"
 "%s\n"
 
 #: ../gtk-dialog.c:727
 msgid "How would you like to authenticate your buddy?"
-msgstr "Milyen módon szeretné partnerét hitelesíteni?"
+msgstr "Jaki sposób uwierzytelniania pragniesz zastosować?"
 
 #: ../gtk-dialog.c:736
 msgid "Question and answer"
-msgstr "Kérdés-válasz"
+msgstr "Pytanie i odpowiedź"
 
 #: ../gtk-dialog.c:739
 msgid "Shared secret"
-msgstr "Közös titok"
+msgstr "Współdzielony sekret"
 
 #: ../gtk-dialog.c:742
 msgid "Manual fingerprint verification"
-msgstr "Kézi ujjlenyomat-ellenőrzés"
+msgstr "Ręczna wymiana kluczy"
 
 #: ../gtk-dialog.c:785
 msgid "_Authenticate"
-msgstr "_Hitelesítés"
+msgstr "_Uwierzytelnij"
 
 #: ../gtk-dialog.c:818
 msgid ""
 "Authenticating a buddy helps ensure that the person you are talking to is "
 "who he or she claims to be."
 msgstr ""
-"Partnerének hitelesítése segíti annak az ellenőrzését, hogy ön azzal a "
-"személlyel cseveg-e, akinek ő magát állítja."
+"Uwierzytelnianie współrozmówcy umożliwia upewnienie się, że osoba, z którą rozmawiasz, "
+"jest tą, za którą się podaje."
 
 #. Translators: you are asked to authenticate yourself
 #: ../gtk-dialog.c:927
 msgid "Authenticating to Buddy"
-msgstr "Hitelesítés partnernek"
+msgstr "Uwierzytelnij się"
 
 #. Translators: you asked your buddy to authenticate him/herself
 #: ../gtk-dialog.c:929
 msgid "Authenticating Buddy"
-msgstr "Partner hitelesítése"
+msgstr "Uwierzytelnij"
 
 #: ../gtk-dialog.c:956
 #, c-format
 msgid "Authenticating to %s"
-msgstr "Hitelesítés %s részére"
+msgstr "Uwierzytelnianie dla %s"
 
 #: ../gtk-dialog.c:957
 #, c-format
 msgid "Authenticating %s"
-msgstr "%s hitelesítése"
+msgstr "Uwierzytelnianie %s"
 
 #: ../gtk-dialog.c:990
 msgid "Waiting for buddy..."
-msgstr "Várakozás a partnerre…"
+msgstr "Oczekiwanie..."
 
 #: ../gtk-dialog.c:1023
 msgid "Generating private key"
-msgstr "Személyes kulcs létrehozása"
+msgstr "Generowanie klucza prywatnego"
 
 #: ../gtk-dialog.c:1024
 msgid "Please wait"
-msgstr "Kis türelmet"
+msgstr "Proszę czekać"
 
 #. Create the Please Wait... dialog
 #: ../gtk-dialog.c:1035
 #, c-format
 msgid "Generating private key for %s (%s)..."
-msgstr "Személyes kulcs létrehozása a következőhöz: %s (%s)…"
+msgstr "Generowanie klucza prywatnego dla %s (%s)..."
 
 #: ../gtk-dialog.c:1080
 #, c-format
 msgid "%s Done."
-msgstr "%s elkészült."
+msgstr "%s Zakończono."
 
 #: ../gtk-dialog.c:1142
 #, c-format
@@ -200,50 +200,52 @@ msgid ""
 "%s is contacting you from an unrecognized computer.  You should <a href=\"%s%"
 "s\">authenticate</a> this buddy."
 msgstr ""
-"%s egy ismeretlen számítógépről kapcsolódik. <a href=\"%s%s\">Hitelesítse</"
-"a> partnerét."
+"%s kontaktuje się z tobą z nierozpoznanego komputera. Powinieneś "
+"<a href=\"%s%s\">uwierzytelnić</a> go."
 
 #: ../gtk-dialog.c:1146
 #, c-format
 msgid ""
 "%s has not been authenticated yet.  You should <a href=\"%s%s"
 "\">authenticate</a> this buddy."
-msgstr "%s még nincs hitelesítve. <a href=\"%s%s\">Hitelesítse</a> partnerét."
+msgstr ""
+"%s nie został jeszcze uwierzytelniony. Powinieneś <a href=\"%s%s"
+"\">uwierzytelnić</a> go."
 
 #: ../gtk-dialog.c:1209 ../gtk-dialog.c:1240 ../gtk-dialog.c:2030
 #: ../gtk-dialog.c:2305 ../gtk-ui.c:82
 msgid "Finished"
-msgstr "Kész"
+msgstr "Zakończono"
 
 #: ../gtk-dialog.c:1210 ../gtk-dialog.c:1241 ../gtk-dialog.c:2027
 #: ../gtk-dialog.c:2302 ../gtk-ui.c:81
 msgid "Private"
-msgstr "Bizalmas"
+msgstr "Prywatna"
 
 #: ../gtk-dialog.c:1211 ../gtk-dialog.c:1242 ../gtk-dialog.c:2024
 #: ../gtk-dialog.c:2299 ../gtk-ui.c:80
 msgid "Unverified"
-msgstr "Ellenőrizetlen"
+msgstr "Niezweryfikowana"
 
 #: ../gtk-dialog.c:1212 ../gtk-dialog.c:1243 ../gtk-ui.c:79
 msgid "Not private"
-msgstr "Nem bizalmas"
+msgstr "Nieprywatna"
 
 #: ../gtk-dialog.c:1215
 msgid "Start a private conversation"
-msgstr "Bizalmas beszélgetés kezdeményezése"
+msgstr "Rozpocznij prywatną rozmowę"
 
 #: ../gtk-dialog.c:1216
 msgid "Refresh the private conversation"
-msgstr "Bizalmas beszélgetés megerősítése"
+msgstr "Odśwież prywatną rozmowę"
 
 #: ../gtk-dialog.c:1221 ../gtk-dialog.c:1979 ../gtk-dialog.c:2074
 msgid "Start _private conversation"
-msgstr "_Bizalmas beszélgetés kezdeményezése"
+msgstr "Rozpocznij _prywatną rozmowę"
 
 #: ../gtk-dialog.c:1222 ../gtk-dialog.c:1980
 msgid "Refresh _private conversation"
-msgstr "_Bizalmas beszélgetés megerősítése"
+msgstr "_Odśwież prywatna rozmowę."
 
 #: ../gtk-dialog.c:1246
 msgid "OTR"
@@ -255,56 +257,55 @@ msgstr "OTR"
 #. the fourth message will follow it.
 #: ../gtk-dialog.c:1449
 msgid "I have not"
-msgstr "Nem győződtem meg"
+msgstr "Nie dokonałem"
 
 #. 2nd message
 #: ../gtk-dialog.c:1451
 msgid "I have"
-msgstr "Meggyőződtem"
+msgstr "Dokonałem"
 
 #. 3rd message
 #: ../gtk-dialog.c:1454
 msgid " verified that this is in fact the correct"
-msgstr " arról, hogy"
+msgstr " weryfikacji poprawności klucza."
 
 #. 4th message
 #: ../gtk-dialog.c:1464
 #, c-format
 msgid "fingerprint for %s."
-msgstr "valóban %s ujjlenyomata."
+msgstr "Klucz %s."
 
 #: ../gtk-dialog.c:1483
 msgid ""
 "If your buddy has more than one IM account, or uses more than one computer, "
 "he may have multiple fingerprints."
-msgstr ""
-"Amennyiben partnere egynél több azonnali üzenetküldő felhasználót vagy "
-"számítógépet használ, több ujjlenyomata is lehet."
+msgstr "Jeżeli twój współrozmówca ma więcej niż jedno konto lub korzysta nie tylko z jednego komputera "
+"może posiadać wiele kluczy."
 
 #: ../gtk-dialog.c:1485
 msgid ""
 "However, the only way an imposter could duplicate one of your buddy's "
 "fingerprints is by stealing information from her/his computer."
 msgstr ""
-"Azonban a szélhámos egyetlen módja az ujjlenyomat hamisítására az, hogy "
-"partnerének számítógépéről adatot lop."
+"Jednakże jedyny sposób by oszust mógł podszyć się pod klucz twojego współrozmówcy "
+"to kradzież danych z jego komputera."
 
 #: ../gtk-dialog.c:1489
 msgid "Click here for more information about fingerprints."
-msgstr "Kattintson ide további információért az ujjlenyomatokról."
+msgstr "Klicken Sie hier für zusätzliche Informationen über Fingerprints."
 
 #: ../gtk-dialog.c:1492
 msgid ""
 "A <b>fingerprint</b> is a unique identifier that you should use to "
 "authenticate your buddy."
 msgstr ""
-"Az <b>ujjlenyomat</b> egy olyan egyedi azonosító, melyet partnerének "
-"hitelesítésére használhat."
+"<b>Klucz</b> jest unikalnym identyfikatorem, którego powinieneś używać w celu "
+"uwierzytelniania swojego współrozmówce."
 
 #: ../gtk-dialog.c:1515
 #, c-format
 msgid "Verify fingerprint for %s"
-msgstr "%s ujjlenyomatának ellenőrzése"
+msgstr "Weryfikowanie klucza dla %s"
 
 #: ../gtk-dialog.c:1527
 #, c-format
@@ -319,87 +320,88 @@ msgid ""
 msgstr ""
 "<small><i>%s %s\n"
 "\n"
-"</i></small>Az ön (%s, %s) ujjlenyomata:\n"
+"</i></small>Twój klucz %s (%s):\n"
 "%s\n"
 "\n"
-"%s feltételezett ujjlenyomata:\n"
+"Rzekomy klucz %s:\n"
 "%s\n"
 
 #: ../gtk-dialog.c:1540 ../gtk-ui.c:782
 msgid "Verify fingerprint"
-msgstr "Ujjlenyomat ellenőrzése"
+msgstr "Weryfikuj klucz"
 
 #: ../gtk-dialog.c:1567
 #, c-format
 msgid "Authentication from %s"
-msgstr "%s hitelesítése"
+msgstr "Uwierzytelnianie z %s"
 
 #: ../gtk-dialog.c:1570
 #, c-format
 msgid "Authenticate %s"
-msgstr "%s hitelesítése"
+msgstr "Uwierzytelnij %s"
 
 #: ../gtk-dialog.c:1580
 msgid "Authenticate Buddy"
-msgstr "Partner hitelesítése"
+msgstr "Uwierzytelnij"
 
 #: ../gtk-dialog.c:1611
 msgid "An error occurred during authentication."
-msgstr "Hiba lépett fel a hitelesítés során."
+msgstr "Wystąpił błąd podczas uwierzytelniania."
 
 #: ../gtk-dialog.c:1626
 msgid "Authentication successful."
-msgstr "A hitelesítés sikeres."
+msgstr "Uwierzytelnianie zakończyło się pomyślnie."
 
 #: ../gtk-dialog.c:1629
 msgid ""
 "Your buddy has successfully authenticated you.  You may want to authenticate "
 "your buddy as well by asking your own question."
 msgstr ""
-"Partnere sikeresen hitelesítette önt. Ez nem jelenti azt, hogy ön is biztos "
-"lehet partnere kilétében, ezért tegyen fel ön is egy kérdést."
+"Twój współrozmówca pomyślnie uwierzytelnij ciebie. Prawdopodobnie ty również pragniesz "
+"uwierzytelnij swojego współrozmówcę zadając mu własne pytanie."
 
 #: ../gtk-dialog.c:1635
 msgid "Authentication failed."
-msgstr "A hitelesítés meghiúsult."
+msgstr "Uwierzytelnianie nie powiodło się."
 
 #: ../gtk-dialog.c:1663
 #, c-format
 msgid "Private conversation with %s started.%s"
-msgstr "Bizalmas beszélgetés kezdődött %s partnerrel.%s"
+msgstr "Prywatna rozmowa z %s rozpoczęła się.%s"
 
 #: ../gtk-dialog.c:1667
 #, c-format
 msgid "<a href=\"%s%s\">Unverified</a> conversation with %%s started.%%s"
 msgstr ""
-"<a href=\"%s%s\">Ellenőrizetlen</a> beszélgetés kezdődött %%s partnerrel.%%s"
+"<a href=\"%s%s\">Niezweryfikowany</a> rozmowa z %%s rozpoczęta.%%s"
 
 #. This last case should never happen, since we know
 #. * we're in ENCRYPTED.
 #: ../gtk-dialog.c:1675
 #, c-format
 msgid "Not private conversation with %s started.%s"
-msgstr "Nem bizalmas beszélgetés kezdődött %s partnerrel.%s"
+msgstr "Nie prywatna rozmowa z %s rozpoczęta.%s"
 
 #: ../gtk-dialog.c:1681 ../gtk-dialog.c:1785
 msgid "  Warning: using old protocol version 1."
-msgstr "  Figyelmeztetés: elavult protokoll használata: 1-es verzió."
+msgstr "  Uwaga: używasz przestarzałego protokołu w wersji 1."
 
 #: ../gtk-dialog.c:1701
 #, c-format
 msgid "Private conversation with %s lost."
-msgstr "Megszűnt a bizalmas beszélgetés %s partnerrel."
+msgstr "Prywatna rozmowa z %s stracona."
 
 #: ../gtk-dialog.c:1738
 #, c-format
 msgid ""
 "%s has ended his/her private conversation with you; you should do the same."
-msgstr "%s befejezte a bizalmas beszélgetést. Tegyen ön is így."
+msgstr ""
+"%s zakończył prywatną rozmowę z tobą; powinieneś postąpić tak samo."
 
 #: ../gtk-dialog.c:1764
 #, c-format
 msgid "Successfully refreshed the private conversation with %s.%s"
-msgstr "A bizalmas beszélgetés %s partnerrel megerősítésre került.%s"
+msgstr "Pomyślnie odświeżono prywatną rozmowę z %s.%s"
 
 #: ../gtk-dialog.c:1769
 #, c-format
@@ -407,33 +409,32 @@ msgid ""
 "Successfully refreshed the <a href=\"%s%s\">unverified</a> conversation with "
 "%%s.%%s"
 msgstr ""
-"Az <a href=\"%s%s\">ellenőrizetlen</a> beszélgetés %%s partnerrel "
-"megerősítésre került.%%s"
+"Pomyślnie odświeżono <a href=\"%s%s\">niezweryfikowaną</a> rozmowę z %%s.%%s"
 
 #. This last case should never happen, since we know
 #. * we're in ENCRYPTED.
 #: ../gtk-dialog.c:1778
 #, c-format
 msgid "Successfully refreshed the not private conversation with %s.%s"
-msgstr "A nem bizalmas beszélgetés %s partnerrel megerősítésre került.%s"
+msgstr "Pomyślnie odświeżono nieprywatną rozmowę z %s.%s"
 
 #: ../gtk-dialog.c:1810
 #, c-format
 msgid "Attempting to refresh the private conversation with %s..."
-msgstr "%s partnerrel folyó bizalmas beszélgetés megerősítése…"
+msgstr "Próba odświeżenia prywatnej rozmowy z %s..."
 
 #: ../gtk-dialog.c:1812
 #, c-format
 msgid "Attempting to start a private conversation with %s..."
-msgstr "Bizalmas beszélgetés kezdeményezése %s partnerrel…"
+msgstr "Próba rozpoczęcia prywatnej rozmowy z %s..."
 
 #: ../gtk-dialog.c:2021 ../gtk-dialog.c:2296
 msgid "Not Private"
-msgstr "Nem bizalmas"
+msgstr "Nieprywatna"
 
 #: ../gtk-dialog.c:2075 ../gtk-dialog.c:2482
 msgid "_End private conversation"
-msgstr "Bizalmas beszélgetés _befejezése"
+msgstr "_Zakończ prywatną rozmowę"
 
 #.
 #. * Don't show the Verify fingerprint menu option any more.  You can
@@ -446,14 +447,15 @@ msgstr "Bizalmas beszélgetés _befejezése"
 #.
 #: ../gtk-dialog.c:2076 ../gtk-dialog.c:2500
 msgid "_Authenticate buddy"
-msgstr "Partner _hitelesítése"
+msgstr "_Uwierzytelnij"
 
 #: ../gtk-dialog.c:2292
 #, c-format
 msgid ""
 "The privacy status of the current conversation is now: <a href=\"%s%s\">%s</"
 "a>"
-msgstr "A beszélgetés biztonságossága jelenleg <a href=\"%s%s\">%s</a>"
+msgstr ""
+"Status prywatności aktualnej rozmowy to: <a href=\"%s%s\">%s</a>"
 
 #: ../gtk-dialog.c:2455
 msgid "OTR:"
@@ -461,207 +463,183 @@ msgstr "OTR:"
 
 #: ../gtk-dialog.c:2475
 msgid "OTR Messaging"
-msgstr "OTR üzenetküldés"
+msgstr "Wiadomości OTR"
 
 #: ../gtk-ui.c:102
 #, c-format
 msgid "Fingerprint: %.80s"
-msgstr "Ujjlenyomat: %.80s"
+msgstr "Klucz: %.80s"
 
 #: ../gtk-ui.c:106
 #, c-format
 msgid "No key present"
-msgstr "Nem érhető el kulcs"
+msgstr "Brak klucza"
 
 #: ../gtk-ui.c:111
 #, c-format
 msgid "No account available"
-msgstr "Nem érhető el felhasználó"
+msgstr "Brak konta"
 
 #: ../gtk-ui.c:171
 msgid "Unused"
-msgstr "Használaton kívül"
+msgstr "Niewykorzystane"
 
 #: ../gtk-ui.c:177
 msgid "Yes"
-msgstr "Igen"
+msgstr "Tak"
 
 #: ../gtk-ui.c:177
 msgid "No"
-msgstr "Nem"
+msgstr "Nie"
 
 #: ../gtk-ui.c:403
 msgid "Enable private messaging"
-msgstr "Bizalmas beszélgetés engedélyezése"
+msgstr "Włącz prywatne wiadomości"
 
 #: ../gtk-ui.c:405
 msgid "Automatically initiate private messaging"
-msgstr "Bizalmas beszélgetés automatikus kezdeményezése"
+msgstr "Automatycznie inicjalizuj prywatne wiadomości"
 
 #: ../gtk-ui.c:407
 msgid "Require private messaging"
-msgstr "Bizalmas beszélgetés megkövetelése"
+msgstr "Wymagaj używania prywatnych wiadomości"
 
 #: ../gtk-ui.c:410
 msgid "Don't log OTR conversations"
-msgstr "OTR beszélgetések ne kerüljenek naplózásra"
+msgstr "Nie zapisuj rozmów OTR do dziennika"
 
 #: ../gtk-ui.c:454
 msgid "Show OTR button"
-msgstr "OTR gomb megjelenítése"
+msgstr "Pokazuj przycisk OTR"
 
 #: ../gtk-ui.c:457
 msgid "Show OTR button in toolbar"
-msgstr "OTR gomb megjelenítése az eszköztáron"
+msgstr "Pokazuj przycisk OTR na pasku narzędzi"
 
 #: ../gtk-ui.c:601
 msgid "My private keys"
-msgstr "Saját személyes kulcsok"
+msgstr "Moje klucze prywatne"
 
 #: ../gtk-ui.c:610
 msgid "Key for account:"
-msgstr "Kulcs a következő felhasználóhoz:"
+msgstr "Klucz dla konta:"
 
 #: ../gtk-ui.c:635
 msgid "Generate"
-msgstr "Generálás"
+msgstr "Generuj"
 
 #: ../gtk-ui.c:676
 msgid "Default OTR Settings"
-msgstr "Alapértelmezett OTR beállítások"
+msgstr "Standardowe ustawienia OTR"
 
 #: ../gtk-ui.c:703
 msgid "OTR UI Options"
-msgstr "OTR megjelenési beállítások"
+msgstr "Ustawienia UI"
 
 #: ../gtk-ui.c:726
 msgid "Screenname"
-msgstr "Kijelzett név"
+msgstr "Nazwa"
 
 #: ../gtk-ui.c:727
 msgid "Status"
-msgstr "Állapot"
+msgstr "Status"
 
 #: ../gtk-ui.c:728
 msgid "Verified"
-msgstr "Ellenőrzött"
+msgstr "Zweryfikowano"
 
 #: ../gtk-ui.c:729
 msgid "Fingerprint"
-msgstr "Ujjlenyomat"
+msgstr "Klucz"
 
 #: ../gtk-ui.c:730
 msgid "Account"
-msgstr "Felhasználó"
+msgstr "Konto"
 
 #: ../gtk-ui.c:766
 msgid "Start private connection"
-msgstr "Bizalmas kapcsolat kezdeményezése"
+msgstr "Rozpocznij prywatne połączenie"
 
 #: ../gtk-ui.c:774
 msgid "End private connection"
-msgstr "Bizalmas kapcsolat befejezése"
+msgstr "Zakończy prywatne połączenie"
 
 #: ../gtk-ui.c:790
 msgid "Forget fingerprint"
-msgstr "Ujjlenyomat törlése"
+msgstr "Odrzuć klucz"
 
 #: ../gtk-ui.c:841
 msgid "Config"
-msgstr "Beállítás"
+msgstr "Ustawienia"
 
 #: ../gtk-ui.c:843
 msgid "Known fingerprints"
-msgstr "Ismert ujjlenyomatok"
+msgstr "Znane klucze"
 
 #: ../gtk-ui.c:941 ../otr-plugin.c:606
 msgid "OTR Settings"
-msgstr "OTR-beállítások"
+msgstr "Ustawienia OTR"
 
 #. Set the title
 #: ../gtk-ui.c:959
 #, c-format
 msgid "OTR Settings for %s"
-msgstr "%s OTR-beállításai"
+msgstr "Ustawienia OTR dla %s"
 
 #. Make the cascaded checkboxes
 #: ../gtk-ui.c:976
 msgid "Use default OTR settings for this buddy"
-msgstr "Alapértelmezett OTR-beállítások használata ezen partnerhez"
+msgstr "Używaj standardowych ustawień OTR dla tego rozmówcy"
 
 #: ../otr-plugin.c:114
 #, c-format
 msgid "You are not currently connected to account %s (%s)."
-msgstr "Jelenleg nincsen kapcsolódva %s (%s) felhasználó."
+msgstr "Aktualnie nie jesteś połączony z kontem %s (%s)."
 
 #: ../otr-plugin.c:118
 msgid "Not connected"
-msgstr "Kapcsolat nélkül"
+msgstr "Nie połączony"
 
 #: ../otr-plugin.c:162
 #, c-format
 msgid "Out of memory building filenames!\n"
-msgstr "Állománynevek összeállítása közben elfogyott a memória.\n"
+msgstr "Skończyła się pamięć przy budowaniu nazw plików!\n"
 
 #: ../otr-plugin.c:168
 #, c-format
 msgid "Could not write private key file\n"
-msgstr "Nem írható a személyeskulcs-állomány.\n"
+msgstr "Nie można zapisać klucza prywatnego do pliku\n"
 
 #: ../otr-plugin.c:211
 #, c-format
 msgid "Unknown account %s (%s)."
-msgstr "Ismeretlen felhasználó: %s (%s)."
+msgstr "Nieznane konto %s (%s)."
 
 #: ../otr-plugin.c:215
 msgid "Unknown account"
-msgstr "Ismeretlen felhasználó"
+msgstr "Nieznane konto"
 
 #: ../otr-plugin.c:983
 msgid "Off-the-Record Messaging"
-msgstr "Bizalmas üzenetküldés"
+msgstr "Szyfrowanie Off-the-Record"
 
 #: ../otr-plugin.c:984
 msgid "Provides private and secure conversations"
-msgstr "Bizalmas és biztonságos beszélgetéseket tesz lehetővé"
+msgstr "Zapewnia prywatne i bezpieczne rozmowy."
 
 #: ../otr-plugin.c:985
 msgid ""
 "Preserves the privacy of IM communications by providing encryption, "
 "authentication, deniability, and perfect forward secrecy."
 msgstr ""
-"Biztosítja az azonnali üzenetek adatbiztonságát titkosítás, hitelesítés, "
-"bizonyíthatatlanság és megfelelő utólagos titkosság nyújtásával."
+"Zachowuje prywatność rozmów dzięki dostarczaniu szyfrowania, "
+"uwierzytelniania, zaprzeczalności i doskonałą poufność przesyłania."
 
 #: ../ui.c:109
 #, c-format
 msgid "Account %s (%s) could not be found"
-msgstr "%s (%s) felhasználó nem található"
+msgstr "Konto %s (%s) nie może zostać znalezione"
 
 #: ../ui.c:113
 msgid "Account not found"
-msgstr "A felhasználó nem található"
-
-#~ msgid "_More..."
-#~ msgstr "_Tovább…"
-
-#~ msgid "Advanced..."
-#~ msgstr "Haladó…"
-
-#~ msgid ""
-#~ "If your buddy uses multiple IM accounts or multiple computers, you may "
-#~ "have to authenticate multiple times.  However, as long as they use an "
-#~ "account and computer that you've seen before, you don't need to "
-#~ "authenticate each individual conversation."
-#~ msgstr ""
-#~ "Ha partnere több azonnali üzenetküldő felhasználót vagy számítógépet "
-#~ "használ, lehetséges, hogy több alkalommal is hitelesíteni kell. Azonban "
-#~ "amíg azonos számítógépet és felhasználót használ, a hitelesítés "
-#~ "megismétlése nem szükséges."
-
-#~ msgid "Click here for more information about authentication in OTR."
-#~ msgstr ""
-#~ "Kattintson ide további információért az OTR hitelesítési módszeréről."
-
-#~ msgid "Enter a secret known only to %s and yourself.\n"
-#~ msgstr "Adjon meg egy titkot, amelyet csak ön és %s ismer.\n"
+msgstr "Nie znaleziono konta"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..0a31b7a
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,595 @@
+# Swedish translation for pidgin-otr.
+# Copyright (C) 2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the pidgin-otr package.
+# Daniel Nylander <po at danielnylander.se>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pidgin-otr\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-03-02 16:34+0100\n"
+"PO-Revision-Date: 2009-03-02 18:07+0100\n"
+"Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
+"Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../gtk-dialog.c:291
+#: ../gtk-dialog.c:1085
+#: ../gtk-dialog.c:1089
+#: ../gtk-dialog.c:1518
+#: ../gtk-dialog.c:1621
+#: ../gtk-dialog.c:1686
+#: ../gtk-dialog.c:2130
+msgid "?lang=en"
+msgstr "?lang=sv"
+
+#: ../gtk-dialog.c:439
+msgid "Your buddy is attempting to determine if he or she is really talking to you, or if it's someone pretending to be you.  Your buddy has asked a question, indicated below.  To authenticate to your buddy, enter the answer and click OK."
+msgstr "Din kompis försöker att fastställa om han eller hon verkligen pratar med dig, eller om det är någon som utger sig för att vara dig.  Din kompis har ställt en fråga, som indikeras nedan.  Ange svaret och klicka på OK för att autentisera din kompis."
+
+#: ../gtk-dialog.c:446
+msgid "To authenticate using a question, pick a question whose answer is known only to you and your buddy.  Enter this question and this answer, then wait for your buddy to enter the answer too.  If the answers don't match, then you may be talking to an imposter."
+msgstr "Välj en fråga vars svar endast är känt för dig och din kompis för att autentisera med en fråga.  Ange denna fråga och detta svar, vänta sedan på att din kompis också ska ange svaret.  Om svaren inte matchar varandra så kanske du pratar med en bedragare."
+
+#: ../gtk-dialog.c:464
+#, c-format
+msgid "This is the question asked by your buddy:"
+msgstr "Detta är frågan som ställs av din kompis:"
+
+#: ../gtk-dialog.c:467
+#, c-format
+msgid "Enter question here:"
+msgstr "Ange frågan här:"
+
+#: ../gtk-dialog.c:498
+#: ../gtk-dialog.c:582
+msgid "This buddy is already authenticated."
+msgstr "Denna kompis är redan autentiserad."
+
+#: ../gtk-dialog.c:510
+#, c-format
+msgid "Enter secret answer here (case sensitive):"
+msgstr "Ange hemligt svar här (skiftlägeskänsligt):"
+
+#: ../gtk-dialog.c:551
+msgid "To authenticate, pick a secret known only to you and your buddy.  Enter this secret, then wait for your buddy to enter it too.  If the secrets don't match, then you may be talking to an imposter."
+msgstr "Välj en hemlighet som endast du och din kompis känner till för att autentisera.  Ange denna hemlighet, vänta sedan på att din kompis också ska ange den.  Om hemligheterna inte stämmer med varandra så kanske du pratar med en bedragare."
+
+#: ../gtk-dialog.c:565
+#, c-format
+msgid "Enter secret here:"
+msgstr "Ange hemligheten här:"
+
+#: ../gtk-dialog.c:616
+#: ../gtk-dialog.c:1379
+msgid "To verify the fingerprint, contact your buddy via some <i>other</i> authenticated channel, such as the telephone or GPG-signed email.  Each of you should tell your fingerprint to the other."
+msgstr "Kontakta din kompis via någon <i>annan</i> autentiserad kanal, såsom telefon eller GPG-signerad e-post, för att verifiera fingeravtrycket.  Var och en av er ska läsa upp varandras fingeravtryck."
+
+#: ../gtk-dialog.c:620
+#: ../gtk-dialog.c:1383
+msgid "If everything matches up, you should indicate in the above dialog that you <b>have</b> verified the fingerprint."
+msgstr "Om allting stämmer så bör du indikera, i ovanstående dialogruta, att du <b>har</b> verifierat fingeravtrycket."
+
+#: ../gtk-dialog.c:631
+#: ../gtk-dialog.c:1368
+msgid "[none]"
+msgstr "[ingen]"
+
+#: ../gtk-dialog.c:638
+#: ../gtk-dialog.c:996
+#: ../gtk-dialog.c:1375
+#: ../gtk-dialog.c:1426
+#: ../gtk-ui.c:181
+#: ../otr-plugin.c:116
+#: ../otr-plugin.c:213
+#: ../ui.c:111
+msgid "Unknown"
+msgstr "Okänd"
+
+#: ../gtk-dialog.c:639
+#, c-format
+msgid ""
+"Fingerprint for you, %s (%s):\n"
+"%s\n"
+"\n"
+"Purported fingerprint for %s:\n"
+"%s\n"
+msgstr ""
+"Fingeravtryck för dig, %s (%s):\n"
+"%s\n"
+"\n"
+"Påstått fingeravtryck för %s:\n"
+"%s\n"
+
+#: ../gtk-dialog.c:691
+msgid "How would you like to authenticate your buddy?"
+msgstr "Hur vill du autentisera din kompis?"
+
+#: ../gtk-dialog.c:700
+msgid "Question and answer"
+msgstr "Fråga och svar"
+
+#: ../gtk-dialog.c:703
+msgid "Shared secret"
+msgstr "Delad hemlighet"
+
+#: ../gtk-dialog.c:706
+msgid "Manual fingerprint verification"
+msgstr "Manuell verifiering av fingeravtryck"
+
+#: ../gtk-dialog.c:749
+msgid "_Authenticate"
+msgstr "_Autentisera"
+
+#: ../gtk-dialog.c:782
+msgid "Authenticating a buddy helps ensure that the person you are talking to is who he or she claims to be."
+msgstr "Autentisering av en kompis försäkrar att personen som du pratar med verkligen är den person som han eller hon utger sig för att vara."
+
+#. Translators: you are asked to authenticate yourself
+#: ../gtk-dialog.c:891
+msgid "Authenticating to Buddy"
+msgstr "Autentiserar mot kompis"
+
+#. Translators: you asked your buddy to authenticate him/herself
+#: ../gtk-dialog.c:893
+msgid "Authenticating Buddy"
+msgstr "Autentiserar kompis"
+
+#: ../gtk-dialog.c:920
+#, c-format
+msgid "Authenticating to %s"
+msgstr "Autentiserar mot %s"
+
+#: ../gtk-dialog.c:921
+#, c-format
+msgid "Authenticating %s"
+msgstr "Autentiserar %s"
+
+#: ../gtk-dialog.c:954
+msgid "Waiting for buddy..."
+msgstr "Väntar på kompisen..."
+
+#: ../gtk-dialog.c:987
+msgid "Generating private key"
+msgstr "Genererar privat nyckel"
+
+#: ../gtk-dialog.c:988
+msgid "Please wait"
+msgstr "Vänta"
+
+#. Create the Please Wait... dialog
+#: ../gtk-dialog.c:999
+#, c-format
+msgid "Generating private key for %s (%s)..."
+msgstr "Genererar privat nyckel för %s (%s)..."
+
+#: ../gtk-dialog.c:1044
+#, c-format
+msgid "%s Done."
+msgstr "%s färdigt."
+
+#: ../gtk-dialog.c:1083
+#, c-format
+msgid "%s is contacting you from an unrecognized computer.  You should <a href=\"%s%s\">authenticate</a> this buddy."
+msgstr "%s kontaktar dig från en okänd dator.  Du bör <a href=\"%s%s\">autentisera</a> denna kompis."
+
+#: ../gtk-dialog.c:1087
+#, c-format
+msgid "%s has not been authenticated yet.  You should <a href=\"%s%s\">authenticate</a> this buddy."
+msgstr "%s har ännu inte autentiserats.  Du bör <a href=\"%s%s\">autentisera</a> denna kompis."
+
+#: ../gtk-dialog.c:1150
+#: ../gtk-dialog.c:1181
+#: ../gtk-dialog.c:1853
+#: ../gtk-dialog.c:2126
+#: ../gtk-ui.c:82
+msgid "Finished"
+msgstr "Färdig"
+
+#: ../gtk-dialog.c:1151
+#: ../gtk-dialog.c:1182
+#: ../gtk-dialog.c:1850
+#: ../gtk-dialog.c:2123
+#: ../gtk-ui.c:81
+msgid "Private"
+msgstr "Privat"
+
+#: ../gtk-dialog.c:1152
+#: ../gtk-dialog.c:1183
+#: ../gtk-dialog.c:1847
+#: ../gtk-dialog.c:2120
+#: ../gtk-ui.c:80
+msgid "Unverified"
+msgstr "Inte verifierad"
+
+#: ../gtk-dialog.c:1153
+#: ../gtk-dialog.c:1184
+#: ../gtk-ui.c:79
+msgid "Not private"
+msgstr "Icke-privat"
+
+#: ../gtk-dialog.c:1156
+msgid "Start a private conversation"
+msgstr "Starta en privat konversation"
+
+#: ../gtk-dialog.c:1157
+msgid "Refresh the private conversation"
+msgstr "Uppdatera privat konversation"
+
+#: ../gtk-dialog.c:1162
+#: ../gtk-dialog.c:1802
+#: ../gtk-dialog.c:1897
+msgid "Start _private conversation"
+msgstr "Starta _privat konversation"
+
+#: ../gtk-dialog.c:1163
+#: ../gtk-dialog.c:1803
+msgid "Refresh _private conversation"
+msgstr "Uppdatera _privat konversation"
+
+#: ../gtk-dialog.c:1187
+msgid "OTR"
+msgstr "OTR"
+
+#. Translators: the following four messages should give alternative sentences.
+#. The user selects the first or second message in a combo box;
+#. the third message, a new line, a fingerprint, a new line, and
+#. the fourth message will follow it.
+#: ../gtk-dialog.c:1322
+msgid "I have not"
+msgstr "Jag har inte"
+
+#. 2nd message
+#: ../gtk-dialog.c:1324
+msgid "I have"
+msgstr "Jag har"
+
+#. 3rd message
+#: ../gtk-dialog.c:1327
+msgid " verified that this is in fact the correct"
+msgstr " verifierat att detta är det korrekta"
+
+#. 4th message
+#: ../gtk-dialog.c:1337
+#, c-format
+msgid "fingerprint for %s."
+msgstr "fingeravtrycket för %s."
+
+#: ../gtk-dialog.c:1364
+#, c-format
+msgid "Verify fingerprint for %s"
+msgstr "Verifiera fingeravtryck för %s"
+
+#: ../gtk-dialog.c:1376
+#, c-format
+msgid ""
+"<small><i>%s %s\n"
+"\n"
+"</i></small>Fingerprint for you, %s (%s):\n"
+"%s\n"
+"\n"
+"Purported fingerprint for %s:\n"
+"%s\n"
+msgstr ""
+"<small><i>%s %s\n"
+"\n"
+"</i></small>Fingeravtryck för dig, %s (%s):\n"
+"%s\n"
+"\n"
+"Påstått fingeravtryck för %s:\n"
+"%s\n"
+
+#: ../gtk-dialog.c:1389
+#: ../gtk-ui.c:782
+msgid "Verify fingerprint"
+msgstr "Verifiera fingeravtryck"
+
+#: ../gtk-dialog.c:1416
+#, c-format
+msgid "Authentication from %s"
+msgstr "Autentisering från %s"
+
+#: ../gtk-dialog.c:1419
+#, c-format
+msgid "Authenticate %s"
+msgstr "Autentisera %s"
+
+#: ../gtk-dialog.c:1429
+msgid "Authenticate Buddy"
+msgstr "Autentisera kompis"
+
+#: ../gtk-dialog.c:1460
+msgid "An error occurred during authentication."
+msgstr "Ett fel inträffade under autentisering."
+
+#: ../gtk-dialog.c:1475
+msgid "Authentication successful."
+msgstr "Autentiseringen lyckades."
+
+#: ../gtk-dialog.c:1478
+msgid "Your buddy has successfully authenticated you.  You may want to authenticate your buddy as well by asking your own question."
+msgstr "Din kompis har autentiserat dig.  Du kanske också vill autentisera din kompis genom att ställa en egen fråga."
+
+#: ../gtk-dialog.c:1484
+msgid "Authentication failed."
+msgstr "Autentisering misslyckades."
+
+#: ../gtk-dialog.c:1512
+#, c-format
+msgid "Private conversation with %s started.%s"
+msgstr "Privat konversation med %s har startat.%s"
+
+#: ../gtk-dialog.c:1516
+#, c-format
+msgid "<a href=\"%s%s\">Unverified</a> conversation with %%s started.%%s"
+msgstr "<a href=\"%s%s\">Ej verifierad</a> konversation med %%s har startat.%%s"
+
+#. This last case should never happen, since we know
+#. * we're in ENCRYPTED.
+#: ../gtk-dialog.c:1524
+#, c-format
+msgid "Not private conversation with %s started.%s"
+msgstr "Icke-privat konversation med %s har startat.%s"
+
+#: ../gtk-dialog.c:1530
+#: ../gtk-dialog.c:1634
+msgid "  Warning: using old protocol version 1."
+msgstr "  Varning: använder gammalt protokoll version 1."
+
+#: ../gtk-dialog.c:1550
+#, c-format
+msgid "Private conversation with %s lost."
+msgstr "Privata konversationen med %s kopplades från."
+
+#: ../gtk-dialog.c:1587
+#, c-format
+msgid "%s has ended his/her private conversation with you; you should do the same."
+msgstr "%s har avslutat sin privata konversation med dig. Du bör göra det samma."
+
+#: ../gtk-dialog.c:1613
+#, c-format
+msgid "Successfully refreshed the private conversation with %s.%s"
+msgstr "Uppdaterade privat konversation med %s.%s"
+
+#: ../gtk-dialog.c:1618
+#, c-format
+msgid "Successfully refreshed the <a href=\"%s%s\">unverified</a> conversation with %%s.%%s"
+msgstr "Uppdaterade <a href=\"%s%s\">ej verifierad</a> konversation med %%s.%%s"
+
+#. This last case should never happen, since we know
+#. * we're in ENCRYPTED.
+#: ../gtk-dialog.c:1627
+#, c-format
+msgid "Successfully refreshed the not private conversation with %s.%s"
+msgstr "Uppdaterade icke-privat konversation med %s.%s"
+
+#: ../gtk-dialog.c:1659
+#, c-format
+msgid "Attempting to refresh the private conversation with %s..."
+msgstr "Försöker att uppdatera privat konversation med %s..."
+
+#: ../gtk-dialog.c:1661
+#, c-format
+msgid "Attempting to start a private conversation with %s..."
+msgstr "Försöker att starta en privat konversation med %s..."
+
+#: ../gtk-dialog.c:1844
+#: ../gtk-dialog.c:2117
+msgid "Not Private"
+msgstr "Icke-privat"
+
+#: ../gtk-dialog.c:1866
+#: ../gtk-dialog.c:2338
+msgid "_What's this?"
+msgstr "_Vad är detta?"
+
+#: ../gtk-dialog.c:1898
+#: ../gtk-dialog.c:2303
+msgid "_End private conversation"
+msgstr "A_vsluta privat konversation"
+
+#.
+#. * Don't show the Verify fingerprint menu option any more.  You can
+#. * still get to the dialog through Authenticate connection ->
+#. * Advanced...
+#. *
+#. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint"));
+#. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf);
+#. gtk_widget_show(menuverf);
+#.
+#: ../gtk-dialog.c:1899
+#: ../gtk-dialog.c:2321
+msgid "_Authenticate buddy"
+msgstr "_Autentisera kompis"
+
+#: ../gtk-dialog.c:2113
+#, c-format
+msgid "The privacy status of the current conversation is now: <a href=\"%s%s\">%s</a>"
+msgstr "Integritetsstatus för aktuell konversation är nu: <a href=\"%s%s\">%s</a>"
+
+#: ../gtk-dialog.c:2276
+msgid "OTR:"
+msgstr "OTR:"
+
+#: ../gtk-dialog.c:2296
+msgid "OTR Messaging"
+msgstr "OTR-meddelanden"
+
+#: ../gtk-ui.c:102
+#, c-format
+msgid "Fingerprint: %.80s"
+msgstr "Fingeravtryck: %.80s"
+
+#: ../gtk-ui.c:106
+#, c-format
+msgid "No key present"
+msgstr "Ingen nyckel finns"
+
+#: ../gtk-ui.c:111
+#, c-format
+msgid "No account available"
+msgstr "Inget konto tillgängligt"
+
+#: ../gtk-ui.c:171
+msgid "Unused"
+msgstr "Oanvänd"
+
+#: ../gtk-ui.c:177
+msgid "Yes"
+msgstr "Ja"
+
+#: ../gtk-ui.c:177
+msgid "No"
+msgstr "Nej"
+
+#: ../gtk-ui.c:403
+msgid "Enable private messaging"
+msgstr "Aktivera privata meddelanden"
+
+#: ../gtk-ui.c:405
+msgid "Automatically initiate private messaging"
+msgstr "Initiera automatiskt privata meddelanden"
+
+#: ../gtk-ui.c:407
+msgid "Require private messaging"
+msgstr "Kräv privata meddelanden"
+
+#: ../gtk-ui.c:410
+msgid "Don't log OTR conversations"
+msgstr "Logga inte OTR-konversationer"
+
+#: ../gtk-ui.c:454
+msgid "Show OTR button"
+msgstr "Visa OTR-knapp"
+
+#: ../gtk-ui.c:457
+msgid "Show OTR button in toolbar"
+msgstr "Visa OTR-knapp i verktygsrad"
+
+#: ../gtk-ui.c:601
+msgid "My private keys"
+msgstr "Mina privata nycklar"
+
+#: ../gtk-ui.c:610
+msgid "Key for account:"
+msgstr "Nyckel för konto:"
+
+#: ../gtk-ui.c:635
+msgid "Generate"
+msgstr "Generera"
+
+#: ../gtk-ui.c:676
+msgid "Default OTR Settings"
+msgstr "Standardinställningar för OTR"
+
+#: ../gtk-ui.c:703
+msgid "OTR UI Options"
+msgstr "Gränssnittsalternativ för OTR"
+
+#: ../gtk-ui.c:726
+msgid "Screenname"
+msgstr "Skärmnamn"
+
+#: ../gtk-ui.c:727
+msgid "Status"
+msgstr "Status"
+
+#: ../gtk-ui.c:728
+msgid "Verified"
+msgstr "Verifierad"
+
+#: ../gtk-ui.c:729
+msgid "Fingerprint"
+msgstr "Fingeravtryck"
+
+#: ../gtk-ui.c:730
+msgid "Account"
+msgstr "Konto"
+
+#: ../gtk-ui.c:766
+msgid "Start private connection"
+msgstr "Starta privat anslutning"
+
+#: ../gtk-ui.c:774
+msgid "End private connection"
+msgstr "Avsluta privat anslutning"
+
+#: ../gtk-ui.c:790
+msgid "Forget fingerprint"
+msgstr "Glöm fingeravtryck"
+
+#: ../gtk-ui.c:841
+msgid "Config"
+msgstr "Konfiguration"
+
+#: ../gtk-ui.c:843
+msgid "Known fingerprints"
+msgstr "Kända fingeravtryck"
+
+#: ../gtk-ui.c:941
+#: ../otr-plugin.c:606
+msgid "OTR Settings"
+msgstr "OTR-inställningar"
+
+#. Set the title
+#: ../gtk-ui.c:959
+#, c-format
+msgid "OTR Settings for %s"
+msgstr "OTR-inställningar för %s"
+
+#. Make the cascaded checkboxes
+#: ../gtk-ui.c:976
+msgid "Use default OTR settings for this buddy"
+msgstr "Använd standardinställningar för OTR för denna kompis"
+
+#: ../otr-plugin.c:114
+#, c-format
+msgid "You are not currently connected to account %s (%s)."
+msgstr "Du är för närvarande inte ansluten till kontot %s (%s)."
+
+#: ../otr-plugin.c:118
+msgid "Not connected"
+msgstr "Inte ansluten"
+
+#: ../otr-plugin.c:162
+#, c-format
+msgid "Out of memory building filenames!\n"
+msgstr "Slut på minne när filnamn byggdes!\n"
+
+#: ../otr-plugin.c:168
+#, c-format
+msgid "Could not write private key file\n"
+msgstr "Kunde inte skriva privat nyckel-fil\n"
+
+#: ../otr-plugin.c:211
+#, c-format
+msgid "Unknown account %s (%s)."
+msgstr "Okänt konto %s (%s)."
+
+#: ../otr-plugin.c:215
+msgid "Unknown account"
+msgstr "Okänt konto"
+
+#: ../otr-plugin.c:983
+msgid "Off-the-Record Messaging"
+msgstr "Off-the-Record-meddelanden"
+
+#: ../otr-plugin.c:984
+msgid "Provides private and secure conversations"
+msgstr "Tillhandahåller privata och säkra konversationer"
+
+#: ../otr-plugin.c:985
+msgid "Preserves the privacy of IM communications by providing encryption, authentication, deniability, and perfect forward secrecy."
+msgstr "Bibehåller integriteten för snabbmeddelanden genom att tillhandahålla kryptering, autentisering, förnekande och perfekt sekretess för vidarebefordring."
+
+#: ../ui.c:109
+#, c-format
+msgid "Account %s (%s) could not be found"
+msgstr "Kontot %s (%s) kunde inte hittas"
+
+#: ../ui.c:113
+msgid "Account not found"
+msgstr "Kontot hittades inte"
+
diff --git a/tooltipmenu.c b/tooltipmenu.c
index fb5f901..880cebb 100644
--- a/tooltipmenu.c
+++ b/tooltipmenu.c
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/tooltipmenu.h b/tooltipmenu.h
index 28beec1..b5395d0 100644
--- a/tooltipmenu.h
+++ b/tooltipmenu.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/ui.c b/ui.c
index 5ee5a58..95a32ea 100644
--- a/ui.c
+++ b/ui.c
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/ui.h b/ui.h
index 328a6ac..9ef64e6 100644
--- a/ui.h
+++ b/ui.h
@@ -1,7 +1,8 @@
 /*
  *  Off-the-Record Messaging plugin for pidgin
- *  Copyright (C) 2004-2008  Ian Goldberg, Rob Smits,
- *                           Chris Alexander, Nikita Borisov
+ *  Copyright (C) 2004-2009  Ian Goldberg, Rob Smits,
+ *                           Chris Alexander, Willy Lew,
+ *                           Nikita Borisov
  *                           <otr at cypherpunks.ca>
  *
  *  This program is free software; you can redistribute it and/or modify

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-privacy/packages/pidgin-otr.git



More information about the Pkg-privacy-commits mailing list