]> git.0d.be Git - empathy.git/commitdiff
Merge branch 'debugger'
authorJonny Lamb <jonny.lamb@collabora.co.uk>
Thu, 25 Jun 2009 17:52:48 +0000 (18:52 +0100)
committerJonny Lamb <jonny.lamb@collabora.co.uk>
Thu, 25 Jun 2009 17:52:48 +0000 (18:52 +0100)
58 files changed:
configure.ac
data/empathy.schemas.in
docs/libempathy-gtk/libempathy-gtk.types
libempathy-gtk/Makefile.am
libempathy-gtk/empathy-account-chooser.c
libempathy-gtk/empathy-account-widget.c
libempathy-gtk/empathy-avatar-chooser.c
libempathy-gtk/empathy-chat-text-view.c
libempathy-gtk/empathy-chat-view.c
libempathy-gtk/empathy-chat.c
libempathy-gtk/empathy-chat.h
libempathy-gtk/empathy-conf.h
libempathy-gtk/empathy-contact-dialogs.c
libempathy-gtk/empathy-contact-list-store.c
libempathy-gtk/empathy-contact-list-view.c
libempathy-gtk/empathy-contact-menu.c
libempathy-gtk/empathy-log-window.c
libempathy-gtk/empathy-new-message-dialog.c
libempathy-gtk/empathy-plist.c [new file with mode: 0644]
libempathy-gtk/empathy-plist.h [new file with mode: 0644]
libempathy-gtk/empathy-presence-chooser.c
libempathy-gtk/empathy-smiley-manager.c
libempathy-gtk/empathy-spell.c
libempathy-gtk/empathy-theme-adium.c
libempathy-gtk/empathy-theme-adium.h
libempathy-gtk/empathy-theme-boxes.c
libempathy-gtk/empathy-theme-irc.c
libempathy-gtk/empathy-theme-manager.c
libempathy-gtk/empathy-ui-utils.c
libempathy/empathy-chatroom.c
libempathy/empathy-contact-manager.c
libempathy/empathy-idle.c
libempathy/empathy-status-presets.c
libempathy/empathy-status-presets.h
libempathy/empathy-time.c
libempathy/empathy-tp-chat.c
libempathy/empathy-tp-contact-list.c
libempathy/empathy-utils.c
po/bn_IN.po
po/es.po
po/ta.po
src/Makefile.am
src/empathy-accounts-dialog.c
src/empathy-call-window.c
src/empathy-call-window.ui
src/empathy-chat-window.c
src/empathy-chat-window.ui
src/empathy-event-manager.c
src/empathy-event-manager.h
src/empathy-main-window.c
src/empathy-map-view.c
src/empathy-new-chatroom-dialog.c
src/empathy-preferences.c
src/empathy-preferences.ui
src/empathy-sidebar.c
src/empathy-status-icon.c
src/empathy.c
tools/check-whitespace.sh

index ce87cb873b01900f677abe3102b35dffd647d3b4..df6ec7ec0e49f8764fbe4a04cad0bab76584f436 100644 (file)
@@ -96,6 +96,8 @@ PKG_CHECK_MODULES(LIBEMPATHY,
    telepathy-glib >= $TELEPATHY_GLIB_REQUIRED
    libmissioncontrol >= $MISSION_CONTROL_REQUIRED
    telepathy-farsight
+   farsight2-0.10
+   gstreamer-0.10
 ])
 
 PKG_CHECK_MODULES(LIBEMPATHYGTK,
@@ -109,7 +111,6 @@ PKG_CHECK_MODULES(LIBEMPATHYGTK,
    libcanberra-gtk >= $LIBCANBERRA_GTK_REQUIRED
    telepathy-glib >= $TELEPATHY_GLIB_REQUIRED
    libmissioncontrol >= $MISSION_CONTROL_REQUIRED
-   telepathy-farsight
    farsight2-0.10
    gstreamer-0.10
    gstreamer-interfaces-0.10
@@ -120,16 +121,14 @@ PKG_CHECK_MODULES(EMPATHY,
    glib-2.0 >= $GLIB_REQUIRED
    gobject-2.0
    gio-2.0 >= $GLIB_REQUIRED
-   gconf-2.0 >= $GCONF_REQUIRED
-   x11
+   gdk-x11-2.0
    gtk+-2.0 >= $GTK_REQUIRED
-   libcanberra-gtk >= $LIBCANBERRA_GTK_REQUIRED
    libebook-1.2
+   dbus-glib-1
    telepathy-glib >= $TELEPATHY_GLIB_REQUIRED
    libmissioncontrol >= $MISSION_CONTROL_REQUIRED
    telepathy-farsight
    gstreamer-0.10
-   gstreamer-interfaces-0.10
 ])
 
 PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= $LIBNOTIFY_REQUIRED)
index 81ea5e864ff6e07df5864661d8f124a5b9cf0017..fb068e5bd4299ee261709c02ba66abb786f0e102 100644 (file)
          </long>
       </locale>
     </schema>
-    
+
     <schema>
       <key>/schemas/apps/empathy/sounds/sounds_contact_logout</key>
       <applyto>/apps/empathy/sounds/sounds_contact_logout</applyto>
          </long>
       </locale>
     </schema>
-    
+
     <schema>
       <key>/schemas/apps/empathy/sounds/sounds_service_logout</key>
       <applyto>/apps/empathy/sounds/sounds_service_logout</applyto>
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/empathy/notifications/notifications_contact_signin</key>
+      <applyto>/apps/empathy/notifications/notifications_contact_signin</applyto>
+      <owner>empathy</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+         <short>Popup notifications when a contact sign in</short>
+         <long>
+         Whether or not to show a popup notification when a contact goes
+         online.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/empathy/notifications/notifications_contact_signout</key>
+      <applyto>/apps/empathy/notifications/notifications_contact_signout</applyto>
+      <owner>empathy</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+         <short>Popup notifications when a contact sign out</short>
+         <long>
+         Whether or not to show a popup notification when a contact goes
+         offline.
+         </long>
+      </locale>
+    </schema>
+
     <schema>
        <key>/schemas/apps/empathy/ui/separate_chat_windows</key>
        <applyto>/apps/empathy/ui/separate_chat_windows</applyto>
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/empathy/conversation/show_contacts_in_rooms</key>
+      <applyto>/apps/empathy/conversation/show_contacts_in_rooms</applyto>
+      <owner>empathy</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+         <short>Show contact list in rooms</short>
+         <long>
+         Whether or not to show the contact list in chat rooms.
+         </long>
+      </locale>
+    </schema>
+
     <schema>
       <key>/schemas/apps/empathy/conversation/theme</key>
       <applyto>/apps/empathy/conversation/theme</applyto>
         Character to add after nickname when using nick completion (tab)
         in group chat.
         </long>
-        
+
       </locale>
     </schema>
 
         </long>
       </locale>
     </schema>
-    
+
     <schema>
       <key>/schemas/apps/empathy/autoconnect</key>
       <applyto>/apps/empathy/autoconnect</applyto>
index 7672cc983cd07c421dfe1fd5df888d3c8a22ea70..ead69316bf7852575dea744965e1528d54633335 100644 (file)
@@ -1,4 +1,5 @@
 empathy_account_chooser_get_type
+empathy_adium_data_get_type
 empathy_audio_sink_get_type
 empathy_audio_src_get_type
 empathy_avatar_chooser_get_type
index 2a4438e57969f2c1bb54933a5f8683de6d74a859..c38a96f2398591528a4d0a383f9a6bbf27a35433 100644 (file)
@@ -226,11 +226,15 @@ endif
 
 if HAVE_WEBKIT
 libempathy_gtk_handwritten_source +=           \
+       empathy-plist.c                         \
        empathy-theme-adium.c
 libempathy_gtk_headers +=                      \
+       empathy-plist.h                         \
        empathy-theme-adium.h
 else
 EXTRA_DIST +=                                  \
+       empathy-plist.c                         \
+       empathy-plist.h                         \
        empathy-theme-adium.c                   \
        empathy-theme-adium.h
 endif
index 915b37b23d4b9c2847b455888fdb62736bc2cfa3..488486fdf617504e150c64b05b57db9a880a0ce3 100644 (file)
@@ -361,7 +361,7 @@ empathy_account_chooser_get_has_all_option (EmpathyAccountChooser *chooser)
        g_return_val_if_fail (EMPATHY_IS_ACCOUNT_CHOOSER (chooser), FALSE);
 
        priv = GET_PRIV (chooser);
-       
+
        return priv->has_all_option;
 }
 
@@ -653,11 +653,11 @@ account_chooser_separator_func (GtkTreeModel         *model,
        gboolean                  is_separator;
 
        priv = GET_PRIV (chooser);
-       
+
        if (!priv->has_all_option) {
                return FALSE;
        }
-       
+
        gtk_tree_model_get (model, iter, COL_ACCOUNT_TEXT, &text, -1);
        is_separator = text == NULL;
        g_free (text);
index 669869a4dd4fe06eec2d6ac0b9b4bdda6d31f734..b0d7f8de560dca18263bd0ed6603ea917266fd50 100644 (file)
@@ -238,11 +238,11 @@ account_widget_generic_format_param_name (const gchar *param_name)
        gchar *p;
 
        str = g_strdup (param_name);
-       
+
        if (str && g_ascii_isalpha (str[0])) {
                str[0] = g_ascii_toupper (str[0]);
        }
-       
+
        while ((p = strchr (str, '-')) != NULL) {
                if (p[1] != '\0' && g_ascii_isalpha (p[1])) {
                        p[0] = ' ';
@@ -251,7 +251,7 @@ account_widget_generic_format_param_name (const gchar *param_name)
 
                p++;
        }
-       
+
        return str;
 }
 
@@ -448,7 +448,7 @@ empathy_account_widget_add_forget_button (McAccount   *account,
        GtkWidget *button_forget;
        GtkWidget *entry_password;
        gchar   *password = NULL;
-       
+
        button_forget = GTK_WIDGET (gtk_builder_get_object (gui, button));
        entry_password = GTK_WIDGET (gtk_builder_get_object (gui, entry));
 
index 8c005a029693946c08a74618d57b3af92f8e13bd..83475b5659fcbb30a98e1bf401b2fa0ec2bf2490 100644 (file)
@@ -810,14 +810,14 @@ avatar_chooser_drag_data_received_cb (GtkWidget          *widget,
 
                if (input_stream != NULL) {
                        GFileInfo *info;
-                       
+
                        info = g_file_query_info (file,
                                                  G_FILE_ATTRIBUTE_STANDARD_SIZE,
                                                  0, NULL, NULL);
                        if (info != NULL) {
                                goffset size;
                                gssize bytes_read;
-                               
+
                                size = g_file_info_get_size (info);
                                data = g_malloc (size);
 
@@ -838,7 +838,7 @@ avatar_chooser_drag_data_received_cb (GtkWidget          *widget,
 
                        g_object_unref (input_stream);
                }
-               
+
                g_object_unref (file);
        }
 
index 95e67b7147f41d47748ce2f454ce9a63e56bc520..c47b5474ff3621b5349b1d0f33aa474f421e0a33 100644 (file)
@@ -103,10 +103,10 @@ chat_text_view_url_event_cb (GtkTextTag          *tag,
        if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end)) {
                return FALSE;
        }
-       
+
        if (event->type == GDK_BUTTON_RELEASE && event->button.button == 1) {
                start = end = *iter;
-               
+
                if (gtk_text_iter_backward_to_tag_toggle (&start, tag) &&
                    gtk_text_iter_forward_to_tag_toggle (&end, tag)) {
                            str = gtk_text_buffer_get_text (priv->buffer,
@@ -118,7 +118,7 @@ chat_text_view_url_event_cb (GtkTextTag          *tag,
                            g_free (str);
                    }
        }
-       
+
        return FALSE;
 }
 
@@ -133,31 +133,31 @@ chat_text_view_event_cb (EmpathyChatTextView *view,
        GtkTextIter        iter;
        GdkWindow         *win;
        gint               x, y, buf_x, buf_y;
-       
+
        type = gtk_text_view_get_window_type (GTK_TEXT_VIEW (view),
                                              event->window);
-       
+
        if (type != GTK_TEXT_WINDOW_TEXT) {
                return FALSE;
        }
-       
+
        /* Get where the pointer really is. */
        win = gtk_text_view_get_window (GTK_TEXT_VIEW (view), type);
        if (!win) {
                return FALSE;
        }
-       
+
        gdk_window_get_pointer (win, &x, &y, NULL);
-       
+
        /* Get the iter where the cursor is at */
        gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (view), type,
                                               x, y,
                                               &buf_x, &buf_y);
-       
+
        gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (view),
                                            &iter,
                                            buf_x, buf_y);
-       
+
        if (gtk_text_iter_has_tag (&iter, tag)) {
                if (!hand) {
                        hand = gdk_cursor_new (GDK_HAND2);
@@ -170,7 +170,7 @@ chat_text_view_event_cb (EmpathyChatTextView *view,
                }
                gdk_window_set_cursor (win, beam);
        }
-       
+
        return FALSE;
 }
 
@@ -192,7 +192,7 @@ chat_text_view_create_tags (EmpathyChatTextView *view)
        g_signal_connect (tag, "event",
                          G_CALLBACK (chat_text_view_url_event_cb),
                          view);
-       
+
        g_signal_connect (view, "motion-notify-event",
                          G_CALLBACK (chat_text_view_event_cb),
                          tag);
@@ -203,7 +203,7 @@ chat_text_view_system_font_update (EmpathyChatTextView *view)
 {
        PangoFontDescription *font_description = NULL;
        gchar                *font_name;
-       
+
        if (empathy_conf_get_string (empathy_conf_get (),
                                     "/desktop/gnome/interface/document_font_name",
                                     &font_name) && font_name) {
@@ -212,9 +212,9 @@ chat_text_view_system_font_update (EmpathyChatTextView *view)
                                     } else {
                                             font_description = NULL;
                                     }
-       
+
        gtk_widget_modify_font (GTK_WIDGET (view), font_description);
-       
+
        if (font_description) {
                pango_font_description_free (font_description);
        }
@@ -226,7 +226,7 @@ chat_text_view_notify_system_font_cb (EmpathyConf *conf,
                                      gpointer     user_data)
 {
        EmpathyChatTextView *view = user_data;
-       
+
        chat_text_view_system_font_update (view);
 }
 
@@ -240,10 +240,10 @@ static void
 chat_text_view_copy_address_cb (GtkMenuItem *menuitem, const gchar *url)
 {
        GtkClipboard *clipboard;
-       
+
        clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
        gtk_clipboard_set_text (clipboard, url, -1);
-       
+
        clipboard = gtk_clipboard_get (GDK_SELECTION_PRIMARY);
        gtk_clipboard_set_text (clipboard, url, -1);
 }
@@ -260,66 +260,66 @@ chat_text_view_populate_popup (EmpathyChatTextView *view,
        GtkTextIter         iter, start, end;
        GtkWidget          *item;
        gchar              *str = NULL;
-       
+
        priv = GET_PRIV (view);
-       
+
        /* Clear menu item */
        if (gtk_text_buffer_get_char_count (priv->buffer) > 0) {
                item = gtk_separator_menu_item_new ();
                gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
                gtk_widget_show (item);
-               
+
                item = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLEAR, NULL);
                gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
                gtk_widget_show (item);
-               
+
                g_signal_connect_swapped (item, "activate",
                                          G_CALLBACK (empathy_chat_view_clear),
                                          view);
        }
-       
+
        /* Link context menu items */
        table = gtk_text_buffer_get_tag_table (priv->buffer);
        tag = gtk_text_tag_table_lookup (table, EMPATHY_CHAT_TEXT_VIEW_TAG_LINK);
-       
+
        gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y);
-       
+
        gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (view),
                                               GTK_TEXT_WINDOW_WIDGET,
                                               x, y,
                                               &x, &y);
-       
+
        gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (view), &iter, x, y);
-       
+
        start = end = iter;
-       
+
        if (gtk_text_iter_backward_to_tag_toggle (&start, tag) &&
            gtk_text_iter_forward_to_tag_toggle (&end, tag)) {
                    str = gtk_text_buffer_get_text (priv->buffer,
                                                    &start, &end, FALSE);
            }
-       
+
        if (EMP_STR_EMPTY (str)) {
                g_free (str);
                return;
        }
-       
+
        /* NOTE: Set data just to get the string freed when not needed. */
        g_object_set_data_full (G_OBJECT (menu),
                                "url", str,
                                (GDestroyNotify) g_free);
-       
+
        item = gtk_separator_menu_item_new ();
        gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
        gtk_widget_show (item);
-       
+
        item = gtk_menu_item_new_with_mnemonic (_("_Copy Link Address"));
        g_signal_connect (item, "activate",
                          G_CALLBACK (chat_text_view_copy_address_cb),
                          str);
        gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
        gtk_widget_show (item);
-       
+
        item = gtk_menu_item_new_with_mnemonic (_("_Open Link"));
        g_signal_connect (item, "activate",
                          G_CALLBACK (chat_text_view_open_address_cb),
@@ -332,18 +332,24 @@ static gboolean
 chat_text_view_is_scrolled_down (EmpathyChatTextView *view)
 {
        GtkWidget *sw;
-       
+
        sw = gtk_widget_get_parent (GTK_WIDGET (view));
        if (GTK_IS_SCROLLED_WINDOW (sw)) {
                GtkAdjustment *vadj;
-               
+               gdouble value;
+               gdouble upper;
+               gdouble page_size;
+
                vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (sw));
-               
-               if (vadj->value + vadj->page_size / 2 < vadj->upper - vadj->page_size) {
+               value = gtk_adjustment_get_value (vadj);
+               upper = gtk_adjustment_get_upper (vadj);
+               page_size = gtk_adjustment_get_page_size (vadj);
+
+               if (value < upper - page_size) {
                        return FALSE;
                }
        }
-       
+
        return TRUE;
 }
 
@@ -356,23 +362,23 @@ chat_text_view_maybe_trim_buffer (EmpathyChatTextView *view)
        gint                remove;
        GtkTextTagTable    *table;
        GtkTextTag         *tag;
-       
+
        priv = GET_PRIV (view);
-       
+
        gtk_text_buffer_get_end_iter (priv->buffer, &bottom);
        line = gtk_text_iter_get_line (&bottom);
        if (line < MAX_LINES) {
                return;
        }
-       
+
        remove = line - MAX_LINES;
        gtk_text_buffer_get_start_iter (priv->buffer, &top);
-       
+
        bottom = top;
        if (!gtk_text_iter_forward_lines (&bottom, remove)) {
                return;
        }
-       
+
        /* Track backwords to a place where we can safely cut, we don't do it in
          * the middle of a tag.
          */
@@ -381,11 +387,11 @@ chat_text_view_maybe_trim_buffer (EmpathyChatTextView *view)
        if (!tag) {
                return;
        }
-       
+
        if (!gtk_text_iter_forward_to_tag_toggle (&bottom, tag)) {
                return;
        }
-       
+
        if (!gtk_text_iter_equal (&top, &bottom)) {
                gtk_text_buffer_delete (priv->buffer, &top, &bottom);
        }
@@ -436,7 +442,7 @@ chat_text_view_append_timestamp (EmpathyChatTextView *view,
 
        priv->last_timestamp = timestamp;
 
-       g_string_free (str, TRUE);      
+       g_string_free (str, TRUE);
 }
 
 static void
@@ -461,7 +467,7 @@ chat_text_maybe_append_date_and_time (EmpathyChatTextView *view,
                append_date = TRUE;
                append_time = TRUE;
        }
-       
+
        g_date_free (last_date);
        g_date_free (date);
 
@@ -480,14 +486,14 @@ chat_text_view_size_allocate (GtkWidget     *widget,
                              GtkAllocation *alloc)
 {
        gboolean down;
-       
+
        down = chat_text_view_is_scrolled_down (EMPATHY_CHAT_TEXT_VIEW (widget));
-       
+
        GTK_WIDGET_CLASS (empathy_chat_text_view_parent_class)->size_allocate (widget, alloc);
-       
+
        if (down) {
                GtkAdjustment *adj;
-               
+
                adj = GTK_TEXT_VIEW (widget)->vadjustment;
                gtk_adjustment_set_value (adj, adj->upper - adj->page_size);
        }
@@ -502,7 +508,7 @@ chat_text_view_drag_motion (GtkWidget      *widget,
 {
        /* Don't handle drag motion, since we don't want the view to scroll as
         * the result of dragging something across it. */
-       
+
        return FALSE;
 }
 
@@ -550,14 +556,14 @@ chat_text_view_finalize (GObject *object)
 {
        EmpathyChatTextView     *view;
        EmpathyChatTextViewPriv *priv;
-       
+
        view = EMPATHY_CHAT_TEXT_VIEW (object);
        priv = GET_PRIV (view);
-       
+
        DEBUG ("%p", object);
-       
+
        empathy_conf_notify_remove (empathy_conf_get (), priv->notify_system_fonts_id);
-       
+
        if (priv->last_contact) {
                g_object_unref (priv->last_contact);
        }
@@ -568,7 +574,7 @@ chat_text_view_finalize (GObject *object)
                g_source_remove (priv->scroll_timeout);
        }
        g_object_unref (priv->smiley_manager);
-       
+
        G_OBJECT_CLASS (empathy_chat_text_view_parent_class)->finalize (object);
 }
 
@@ -577,7 +583,7 @@ empathy_chat_text_view_class_init (EmpathyChatTextViewClass *klass)
 {
        GObjectClass   *object_class = G_OBJECT_CLASS (klass);
        GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-       
+
        object_class->finalize = chat_text_view_finalize;
        object_class->get_property = chat_text_view_get_property;
        object_class->set_property = chat_text_view_set_property;
@@ -610,18 +616,18 @@ empathy_chat_text_view_init (EmpathyChatTextView *view)
        EmpathyChatTextViewPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (view,
                EMPATHY_TYPE_CHAT_TEXT_VIEW, EmpathyChatTextViewPriv);
 
-       view->priv = priv;      
+       view->priv = priv;
        priv->buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        priv->last_timestamp = 0;
        priv->allow_scrolling = TRUE;
        priv->smiley_manager = empathy_smiley_manager_dup_singleton ();
-       
+
        g_object_set (view,
                      "wrap-mode", GTK_WRAP_WORD_CHAR,
                      "editable", FALSE,
                      "cursor-visible", FALSE,
                      NULL);
-       
+
        priv->notify_system_fonts_id =
                empathy_conf_notify_add (empathy_conf_get (),
                                         "/desktop/gnome/interface/document_font_name",
@@ -643,13 +649,13 @@ chat_text_view_scroll_cb (EmpathyChatTextView *view)
        EmpathyChatTextViewPriv *priv;
        GtkAdjustment      *adj;
        gdouble             max_val;
-       
+
        priv = GET_PRIV (view);
        adj = GTK_TEXT_VIEW (view)->vadjustment;
        max_val = adj->upper - adj->page_size;
-       
+
        g_return_val_if_fail (priv->scroll_time != NULL, FALSE);
-       
+
        if (g_timer_elapsed (priv->scroll_time, NULL) > MAX_SCROLL_TIME) {
                /* time's up. jump to the end and kill the timer */
                gtk_adjustment_set_value (adj, max_val);
@@ -658,7 +664,7 @@ chat_text_view_scroll_cb (EmpathyChatTextView *view)
                priv->scroll_timeout = 0;
                return FALSE;
        }
-       
+
        /* scroll by 1/3rd the remaining distance */
        gtk_adjustment_set_value (adj, gtk_adjustment_get_value (adj) + ((max_val - gtk_adjustment_get_value (adj)) / 3));
        return TRUE;
@@ -668,9 +674,9 @@ static void
 chat_text_view_scroll_down (EmpathyChatView *view)
 {
        EmpathyChatTextViewPriv *priv = GET_PRIV (view);
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
-       
+
        if (!priv->allow_scrolling) {
                return;
        }
@@ -697,29 +703,29 @@ chat_text_view_append_message (EmpathyChatView *view,
        EmpathyChatTextViewPriv *priv = GET_PRIV (text_view);
        gboolean                 bottom;
        time_t                   timestamp;
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
        g_return_if_fail (EMPATHY_IS_MESSAGE (msg));
-       
+
        if (!empathy_message_get_body (msg)) {
                return;
        }
-       
+
        bottom = chat_text_view_is_scrolled_down (text_view);
-       
+
        chat_text_view_maybe_trim_buffer (EMPATHY_CHAT_TEXT_VIEW (view));
-       
+
        timestamp = empathy_message_get_timestamp (msg);
        chat_text_maybe_append_date_and_time (text_view, timestamp);
        if (EMPATHY_CHAT_TEXT_VIEW_GET_CLASS (view)->append_message) {
                EMPATHY_CHAT_TEXT_VIEW_GET_CLASS (view)->append_message (text_view,
                                                                         msg);
        }
-       
+
        if (bottom) {
                chat_text_view_scroll_down (view);
        }
-       
+
        if (priv->last_contact) {
                g_object_unref (priv->last_contact);
        }
@@ -757,7 +763,7 @@ chat_text_view_append_event (EmpathyChatView *view,
        if (bottom) {
                chat_text_view_scroll_down (view);
        }
-       
+
        if (priv->last_contact) {
                g_object_unref (priv->last_contact);
                priv->last_contact = NULL;
@@ -770,9 +776,9 @@ chat_text_view_scroll (EmpathyChatView *view,
                       gboolean         allow_scrolling)
 {
        EmpathyChatTextViewPriv *priv = GET_PRIV (view);
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
-       
+
        DEBUG ("Scrolling %s", allow_scrolling ? "enabled" : "disabled");
 
        priv->allow_scrolling = allow_scrolling;
@@ -785,11 +791,11 @@ static gboolean
 chat_text_view_get_has_selection (EmpathyChatView *view)
 {
        GtkTextBuffer *buffer;
-       
+
        g_return_val_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view), FALSE);
-       
+
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
-       
+
        return gtk_text_buffer_get_has_selection (buffer);
 }
 
@@ -798,18 +804,18 @@ chat_text_view_clear (EmpathyChatView *view)
 {
        GtkTextBuffer      *buffer;
        EmpathyChatTextViewPriv *priv;
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
-       
+
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        gtk_text_buffer_set_text (buffer, "", -1);
-       
+
        /* We set these back to the initial values so we get
          * timestamps when clearing the window to know when
          * conversations start.
          */
        priv = GET_PRIV (view);
-       
+
        priv->last_timestamp = 0;
 }
 
@@ -825,18 +831,18 @@ chat_text_view_find_previous (EmpathyChatView *view,
        GtkTextIter         iter_match_end;
        gboolean            found;
        gboolean            from_start = FALSE;
-       
+
        g_return_val_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view), FALSE);
        g_return_val_if_fail (search_criteria != NULL, FALSE);
-       
+
        priv = GET_PRIV (view);
-       
+
        buffer = priv->buffer;
-       
+
        if (EMP_STR_EMPTY (search_criteria)) {
                if (priv->find_mark_previous) {
                        gtk_text_buffer_get_start_iter (buffer, &iter_at_mark);
-                       
+
                        gtk_text_buffer_move_mark (buffer,
                                                   priv->find_mark_previous,
                                                   &iter_at_mark);
@@ -850,14 +856,14 @@ chat_text_view_find_previous (EmpathyChatView *view,
                                                      &iter_at_mark,
                                                      &iter_at_mark);
                }
-               
+
                return FALSE;
        }
-       
+
        if (new_search) {
                from_start = TRUE;
        }
-       
+
        if (priv->find_mark_previous) {
                gtk_text_buffer_get_iter_at_mark (buffer,
                                                  &iter_at_mark,
@@ -866,22 +872,22 @@ chat_text_view_find_previous (EmpathyChatView *view,
                gtk_text_buffer_get_end_iter (buffer, &iter_at_mark);
                from_start = TRUE;
        }
-       
+
        priv->find_last_direction = FALSE;
-       
+
        found = empathy_text_iter_backward_search (&iter_at_mark,
                                                   search_criteria,
                                                   &iter_match_start,
                                                   &iter_match_end,
                                                   NULL);
-       
+
        if (!found) {
                gboolean result = FALSE;
-               
+
                if (from_start) {
                        return result;
                }
-               
+
                /* Here we wrap around. */
                if (!new_search && !priv->find_wrapped) {
                        priv->find_wrapped = TRUE;
@@ -890,10 +896,10 @@ chat_text_view_find_previous (EmpathyChatView *view,
                                                                 FALSE);
                        priv->find_wrapped = FALSE;
                }
-               
+
                return result;
        }
-       
+
        /* Set new mark and show on screen */
        if (!priv->find_mark_previous) {
                priv->find_mark_previous = gtk_text_buffer_create_mark (buffer, NULL,
@@ -904,7 +910,7 @@ chat_text_view_find_previous (EmpathyChatView *view,
                                           priv->find_mark_previous,
                                           &iter_match_start);
        }
-       
+
        if (!priv->find_mark_next) {
                priv->find_mark_next = gtk_text_buffer_create_mark (buffer, NULL,
                                                                    &iter_match_end,
@@ -914,17 +920,17 @@ chat_text_view_find_previous (EmpathyChatView *view,
                                           priv->find_mark_next,
                                           &iter_match_end);
        }
-       
+
        gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view),
                                      priv->find_mark_previous,
                                      0.0,
                                      TRUE,
                                      0.5,
                                      0.5);
-       
+
        gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &iter_match_start);
        gtk_text_buffer_move_mark_by_name (buffer, "insert", &iter_match_end);
-       
+
        return TRUE;
 }
 
@@ -940,18 +946,18 @@ chat_text_view_find_next (EmpathyChatView *view,
        GtkTextIter         iter_match_end;
        gboolean            found;
        gboolean            from_start = FALSE;
-       
+
        g_return_val_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view), FALSE);
        g_return_val_if_fail (search_criteria != NULL, FALSE);
-       
+
        priv = GET_PRIV (view);
-       
+
        buffer = priv->buffer;
-       
+
        if (EMP_STR_EMPTY (search_criteria)) {
                if (priv->find_mark_next) {
                        gtk_text_buffer_get_start_iter (buffer, &iter_at_mark);
-                       
+
                        gtk_text_buffer_move_mark (buffer,
                                                   priv->find_mark_next,
                                                   &iter_at_mark);
@@ -965,14 +971,14 @@ chat_text_view_find_next (EmpathyChatView *view,
                                                      &iter_at_mark,
                                                      &iter_at_mark);
                }
-               
+
                return FALSE;
        }
-       
+
        if (new_search) {
                from_start = TRUE;
        }
-       
+
        if (priv->find_mark_next) {
                gtk_text_buffer_get_iter_at_mark (buffer,
                                                  &iter_at_mark,
@@ -981,22 +987,22 @@ chat_text_view_find_next (EmpathyChatView *view,
                gtk_text_buffer_get_start_iter (buffer, &iter_at_mark);
                from_start = TRUE;
        }
-       
+
        priv->find_last_direction = TRUE;
-       
+
        found = empathy_text_iter_forward_search (&iter_at_mark,
                                                  search_criteria,
                                                  &iter_match_start,
                                                  &iter_match_end,
                                                  NULL);
-       
+
        if (!found) {
                gboolean result = FALSE;
-               
+
                if (from_start) {
                        return result;
                }
-               
+
                /* Here we wrap around. */
                if (!new_search && !priv->find_wrapped) {
                        priv->find_wrapped = TRUE;
@@ -1005,10 +1011,10 @@ chat_text_view_find_next (EmpathyChatView *view,
                                                             FALSE);
                        priv->find_wrapped = FALSE;
                }
-               
+
                return result;
        }
-       
+
        /* Set new mark and show on screen */
        if (!priv->find_mark_next) {
                priv->find_mark_next = gtk_text_buffer_create_mark (buffer, NULL,
@@ -1019,7 +1025,7 @@ chat_text_view_find_next (EmpathyChatView *view,
                                           priv->find_mark_next,
                                           &iter_match_end);
        }
-       
+
        if (!priv->find_mark_previous) {
                priv->find_mark_previous = gtk_text_buffer_create_mark (buffer, NULL,
                                                                        &iter_match_start,
@@ -1029,17 +1035,17 @@ chat_text_view_find_next (EmpathyChatView *view,
                                           priv->find_mark_previous,
                                           &iter_match_start);
        }
-       
+
        gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view),
                                      priv->find_mark_next,
                                      0.0,
                                      TRUE,
                                      0.5,
                                      0.5);
-       
+
        gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &iter_match_start);
        gtk_text_buffer_move_mark_by_name (buffer, "insert", &iter_match_end);
-       
+
        return TRUE;
 }
 
@@ -1054,15 +1060,15 @@ chat_text_view_find_abilities (EmpathyChatView *view,
        GtkTextIter              iter_at_mark;
        GtkTextIter              iter_match_start;
        GtkTextIter              iter_match_end;
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
        g_return_if_fail (search_criteria != NULL);
        g_return_if_fail (can_do_previous != NULL && can_do_next != NULL);
-       
+
        priv = GET_PRIV (view);
-       
+
        buffer = priv->buffer;
-       
+
        if (can_do_previous) {
                if (priv->find_mark_previous) {
                        gtk_text_buffer_get_iter_at_mark (buffer,
@@ -1071,14 +1077,14 @@ chat_text_view_find_abilities (EmpathyChatView *view,
                } else {
                        gtk_text_buffer_get_start_iter (buffer, &iter_at_mark);
                }
-               
+
                *can_do_previous = empathy_text_iter_backward_search (&iter_at_mark,
                                                                      search_criteria,
                                                                      &iter_match_start,
                                                                      &iter_match_end,
                                                                      NULL);
        }
-       
+
        if (can_do_next) {
                if (priv->find_mark_next) {
                        gtk_text_buffer_get_iter_at_mark (buffer,
@@ -1087,7 +1093,7 @@ chat_text_view_find_abilities (EmpathyChatView *view,
                } else {
                        gtk_text_buffer_get_start_iter (buffer, &iter_at_mark);
                }
-               
+
                *can_do_next = empathy_text_iter_forward_search (&iter_at_mark,
                                                                 search_criteria,
                                                                 &iter_match_start,
@@ -1107,37 +1113,37 @@ chat_text_view_highlight (EmpathyChatView *view,
        GtkTextIter    iter_match_start;
        GtkTextIter    iter_match_end;
        gboolean       found;
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
-       
+
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
-       
+
        gtk_text_buffer_get_start_iter (buffer, &iter);
-       
+
        gtk_text_buffer_get_bounds (buffer, &iter_start, &iter_end);
        gtk_text_buffer_remove_tag_by_name (buffer, EMPATHY_CHAT_TEXT_VIEW_TAG_HIGHLIGHT,
                                            &iter_start,
                                            &iter_end);
-       
+
        if (EMP_STR_EMPTY (text)) {
                return;
        }
-       
+
        while (1) {
                found = empathy_text_iter_forward_search (&iter,
                                                          text,
                                                          &iter_match_start,
                                                          &iter_match_end,
                                                          NULL);
-               
+
                if (!found) {
                        break;
                }
-               
+
                gtk_text_buffer_apply_tag_by_name (buffer, EMPATHY_CHAT_TEXT_VIEW_TAG_HIGHLIGHT,
                                                   &iter_match_start,
                                                   &iter_match_end);
-               
+
                iter = iter_match_end;
                gtk_text_iter_forward_char (&iter);
        }
@@ -1148,12 +1154,12 @@ chat_text_view_copy_clipboard (EmpathyChatView *view)
 {
        GtkTextBuffer *buffer;
        GtkClipboard  *clipboard;
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
-       
+
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
-       
+
        gtk_text_buffer_copy_clipboard (buffer, clipboard);
 }
 
@@ -1177,9 +1183,9 @@ EmpathyContact *
 empathy_chat_text_view_get_last_contact (EmpathyChatTextView *view)
 {
        EmpathyChatTextViewPriv *priv = GET_PRIV (view);
-       
+
        g_return_val_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view), NULL);
-       
+
        return priv->last_contact;
 }
 
@@ -1188,7 +1194,7 @@ empathy_chat_text_view_set_only_if_date (EmpathyChatTextView *view,
                                         gboolean             only_if_date)
 {
        EmpathyChatTextViewPriv *priv = GET_PRIV (view);
-       
+
        g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view));
 
        if (only_if_date != priv->only_if_date) {
index e0a7905df6cca46f0291809424f8d59d6d662f66..ed5740a8e2b38087167c2ad64bdffb437df456dc 100644 (file)
@@ -31,21 +31,21 @@ GType
 empathy_chat_view_get_type (void)
 {
        static GType type = 0;
-       
+
        if (!type) {
                static const GTypeInfo type_info = {
                        sizeof (EmpathyChatViewIface),
                        chat_view_base_init,
                        NULL,
                };
-               
+
                type = g_type_register_static (G_TYPE_INTERFACE,
                                               "EmpathyChatView",
                                               &type_info, 0);
-               
+
                g_type_interface_add_prerequisite (type, GTK_TYPE_WIDGET);
        }
-       
+
        return type;
 }
 
@@ -53,7 +53,7 @@ static void
 chat_view_base_init (gpointer klass)
 {
        static gboolean initialized = FALSE;
-       
+
        if (!initialized) {
                initialized = TRUE;
        }
@@ -64,7 +64,7 @@ empathy_chat_view_append_message (EmpathyChatView *view,
                                  EmpathyMessage  *msg)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->append_message) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->append_message (view,
                                                                         msg);
@@ -76,7 +76,7 @@ empathy_chat_view_append_event (EmpathyChatView *view,
                                const gchar    *str)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->append_event) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->append_event (view,
                                                                       str);
@@ -88,7 +88,7 @@ empathy_chat_view_scroll (EmpathyChatView *view,
                          gboolean        allow_scrolling)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->scroll) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->scroll (view,
                                                                 allow_scrolling);
@@ -99,7 +99,7 @@ void
 empathy_chat_view_scroll_down (EmpathyChatView *view)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->scroll_down) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->scroll_down (view);
        }
@@ -109,7 +109,7 @@ gboolean
 empathy_chat_view_get_has_selection (EmpathyChatView *view)
 {
        g_return_val_if_fail (EMPATHY_IS_CHAT_VIEW (view), FALSE);
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->get_has_selection) {
                return EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->get_has_selection (view);
        }
@@ -120,7 +120,7 @@ void
 empathy_chat_view_clear (EmpathyChatView *view)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->clear) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->clear (view);
        }
@@ -132,7 +132,7 @@ empathy_chat_view_find_previous (EmpathyChatView *view,
                                 gboolean        new_search)
 {
        g_return_val_if_fail (EMPATHY_IS_CHAT_VIEW (view), FALSE);
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->find_previous) {
                return EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->find_previous (view,
                                                                               search_criteria,
@@ -147,7 +147,7 @@ empathy_chat_view_find_next (EmpathyChatView *view,
                             gboolean        new_search)
 {
        g_return_val_if_fail (EMPATHY_IS_CHAT_VIEW (view), FALSE);
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->find_next) {
                return EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->find_next (view,
                                                                           search_criteria,
@@ -164,7 +164,7 @@ empathy_chat_view_find_abilities (EmpathyChatView *view,
                                  gboolean       *can_do_next)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->find_abilities) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->find_abilities (view,
                                                                         search_criteria,
@@ -178,7 +178,7 @@ empathy_chat_view_highlight (EmpathyChatView *view,
                             const gchar     *text)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->highlight) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->highlight (view, text);
        }
@@ -188,7 +188,7 @@ void
 empathy_chat_view_copy_clipboard (EmpathyChatView *view)
 {
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-       
+
        if (EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->copy_clipboard) {
                EMPATHY_TYPE_CHAT_VIEW_GET_IFACE (view)->copy_clipboard (view);
        }
index 0fb77f24ce7f7ade81e2d4e1c856231a12c0bbb5..9c5e47b0e661b3b15573249bddd1ee23cb00cd41 100644 (file)
@@ -69,6 +69,7 @@ typedef struct {
        gchar             *name;
        gchar             *subject;
        EmpathyContact    *remote_contact;
+       gboolean           show_contacts;
 
        EmpathyLogManager *log_manager;
        EmpathyAccountManager *account_manager;
@@ -107,6 +108,7 @@ enum {
        PROP_NAME,
        PROP_SUBJECT,
        PROP_REMOTE_CONTACT,
+       PROP_SHOW_CONTACTS,
 };
 
 static guint signals[LAST_SIGNAL] = { 0 };
@@ -141,6 +143,9 @@ chat_get_property (GObject    *object,
        case PROP_REMOTE_CONTACT:
                g_value_set_object (value, priv->remote_contact);
                break;
+       case PROP_SHOW_CONTACTS:
+               g_value_set_boolean (value, priv->show_contacts);
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                break;
@@ -159,6 +164,9 @@ chat_set_property (GObject      *object,
        case PROP_TP_CHAT:
                empathy_chat_set_tp_chat (chat, EMPATHY_TP_CHAT (g_value_get_object (value)));
                break;
+       case PROP_SHOW_CONTACTS:
+               empathy_chat_set_show_contacts (chat, g_value_get_boolean (value));
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                break;
@@ -199,7 +207,7 @@ chat_new_connection_cb (EmpathyAccountManager *manager,
        if (!priv->tp_chat && empathy_account_equal (account, priv->account) &&
            priv->handle_type != TP_HANDLE_TYPE_NONE &&
            !EMP_STR_EMPTY (priv->id)) {
-               
+
                DEBUG ("Account reconnected, request a new Text channel");
 
                switch (priv->handle_type) {
@@ -294,7 +302,7 @@ chat_sent_message_add (EmpathyChat  *chat,
 
        /* Save the sent message in our repeat buffer */
        list = priv->sent_messages;
-       
+
        /* Remove any other occurances of this msg */
        while ((item = g_slist_find_custom (list, str, (GCompareFunc) strcmp)) != NULL) {
                list = g_slist_remove_link (list, item);
@@ -325,7 +333,7 @@ chat_sent_message_get_next (EmpathyChat *chat)
 {
        EmpathyChatPriv *priv;
        gint            max;
-       
+
        priv = GET_PRIV (chat);
 
        if (!priv->sent_messages) {
@@ -338,7 +346,7 @@ chat_sent_message_get_next (EmpathyChat *chat)
        if (priv->sent_messages_index < max) {
                priv->sent_messages_index++;
        }
-       
+
        DEBUG ("Returning next message index:%d", priv->sent_messages_index);
 
        return g_slist_nth_data (priv->sent_messages, priv->sent_messages_index);
@@ -352,7 +360,7 @@ chat_sent_message_get_last (EmpathyChat *chat)
        g_return_val_if_fail (EMPATHY_IS_CHAT (chat), NULL);
 
        priv = GET_PRIV (chat);
-       
+
        if (!priv->sent_messages) {
                DEBUG ("No sent messages, last message is NULL");
                return NULL;
@@ -1188,15 +1196,18 @@ chat_reset_size_request (gpointer widget)
 }
 
 static void
-chat_set_show_contacts (EmpathyChat *chat, gboolean show)
+chat_update_contacts_visibility (EmpathyChat *chat)
 {
        EmpathyChatPriv *priv = GET_PRIV (chat);
+       gboolean show;
+
+       show = priv->remote_contact == NULL && priv->show_contacts;
 
        if (!priv->scrolled_window_contacts) {
                return;
        }
 
-       if (show) {
+       if (show && priv->contact_list_view == NULL) {
                EmpathyContactListStore *store;
                gint                     min_width;
 
@@ -1227,34 +1238,47 @@ chat_set_show_contacts (EmpathyChat *chat, gboolean show)
                gtk_widget_show (priv->contact_list_view);
                gtk_widget_show (priv->scrolled_window_contacts);
                g_object_unref (store);
-       } else {
+       } else if (!show) {
                priv->contacts_width = gtk_paned_get_position (GTK_PANED (priv->hpaned));
                gtk_widget_hide (priv->scrolled_window_contacts);
-               if (priv->contact_list_view) {
+               if (priv->contact_list_view != NULL) {
                        gtk_widget_destroy (priv->contact_list_view);
                        priv->contact_list_view = NULL;
                }
        }
 }
 
+void
+empathy_chat_set_show_contacts (EmpathyChat *chat,
+                               gboolean     show)
+{
+       EmpathyChatPriv *priv = GET_PRIV (chat);
+
+       priv->show_contacts = show;
+
+       chat_update_contacts_visibility (chat);
+
+       g_object_notify (G_OBJECT (chat), "show-contacts");
+}
+
 static void
 chat_remote_contact_changed_cb (EmpathyChat *chat)
 {
        EmpathyChatPriv *priv = GET_PRIV (chat);
 
-       if (priv->remote_contact) {
+       if (priv->remote_contact != NULL) {
                g_object_unref (priv->remote_contact);
                priv->remote_contact = NULL;
        }
 
        priv->remote_contact = empathy_tp_chat_get_remote_contact (priv->tp_chat);
-       if (priv->remote_contact) {
+       if (priv->remote_contact != NULL) {
                g_object_ref (priv->remote_contact);
                priv->handle_type = TP_HANDLE_TYPE_CONTACT;
                g_free (priv->id);
                priv->id = g_strdup (empathy_contact_get_id (priv->remote_contact));
        }
-       else if (priv->tp_chat) {
+       else if (priv->tp_chat != NULL) {
                TpChannel *channel;
 
                channel = empathy_tp_chat_get_channel (priv->tp_chat);
@@ -1263,7 +1287,7 @@ chat_remote_contact_changed_cb (EmpathyChat *chat)
                priv->id = g_strdup (empathy_tp_chat_get_id (priv->tp_chat));
        }
 
-       chat_set_show_contacts (chat, priv->remote_contact == NULL);
+       chat_update_contacts_visibility (chat);
 
        g_object_notify (G_OBJECT (chat), "remote-contact");
        g_object_notify (G_OBJECT (chat), "id");
@@ -1288,7 +1312,7 @@ chat_destroy_cb (EmpathyTpChat *tp_chat,
 
        empathy_chat_view_append_event (chat->view, _("Disconnected"));
        gtk_widget_set_sensitive (chat->input_text_view, FALSE);
-       chat_set_show_contacts (chat, FALSE);
+       empathy_chat_set_show_contacts (chat, FALSE);
 }
 
 static void
@@ -1373,7 +1397,7 @@ chat_create_ui (EmpathyChat *chat)
        gtk_widget_show (chat->input_text_view);
 
        /* Create contact list */
-       chat_set_show_contacts (chat, priv->remote_contact == NULL);
+       chat_update_contacts_visibility (chat);
 
        /* Initialy hide the topic, will be shown if not empty */
        gtk_widget_hide (priv->hbox_topic);
@@ -1531,42 +1555,56 @@ empathy_chat_class_init (EmpathyChatClass *klass)
                                                              "The tp chat object",
                                                              EMPATHY_TYPE_TP_CHAT,
                                                              G_PARAM_CONSTRUCT |
-                                                             G_PARAM_READWRITE));
+                                                             G_PARAM_READWRITE |
+                                                             G_PARAM_STATIC_STRINGS));
        g_object_class_install_property (object_class,
                                         PROP_ACCOUNT,
                                         g_param_spec_object ("account",
                                                              "Account of the chat",
                                                              "The account of the chat",
                                                              MC_TYPE_ACCOUNT,
-                                                             G_PARAM_READABLE));
+                                                             G_PARAM_READABLE |
+                                                             G_PARAM_STATIC_STRINGS));
        g_object_class_install_property (object_class,
                                         PROP_ID,
                                         g_param_spec_string ("id",
                                                              "Chat's id",
                                                              "The id of the chat",
                                                              NULL,
-                                                             G_PARAM_READABLE));
+                                                             G_PARAM_READABLE |
+                                                             G_PARAM_STATIC_STRINGS));
        g_object_class_install_property (object_class,
                                         PROP_NAME,
                                         g_param_spec_string ("name",
                                                              "Chat's name",
                                                              "The name of the chat",
                                                              NULL,
-                                                             G_PARAM_READABLE));
+                                                             G_PARAM_READABLE |
+                                                             G_PARAM_STATIC_STRINGS));
        g_object_class_install_property (object_class,
                                         PROP_SUBJECT,
                                         g_param_spec_string ("subject",
                                                              "Chat's subject",
                                                              "The subject or topic of the chat",
                                                              NULL,
-                                                             G_PARAM_READABLE));
+                                                             G_PARAM_READABLE |
+                                                             G_PARAM_STATIC_STRINGS));
        g_object_class_install_property (object_class,
                                         PROP_REMOTE_CONTACT,
                                         g_param_spec_object ("remote-contact",
                                                              "The remote contact",
                                                              "The remote contact is any",
                                                              EMPATHY_TYPE_CONTACT,
-                                                             G_PARAM_READABLE));
+                                                             G_PARAM_READABLE |
+                                                             G_PARAM_STATIC_STRINGS));
+       g_object_class_install_property (object_class,
+                                        PROP_SHOW_CONTACTS,
+                                        g_param_spec_boolean ("show-contacts",
+                                                              "Contacts' visibility",
+                                                              "The visibility of the contacts' list",
+                                                              TRUE,
+                                                              G_PARAM_READWRITE |
+                                                              G_PARAM_STATIC_STRINGS));
 
        signals[COMPOSING] =
                g_signal_new ("composing",
@@ -1619,6 +1657,10 @@ empathy_chat_init (EmpathyChat *chat)
                          G_CALLBACK (chat_new_connection_cb),
                          chat);
 
+       empathy_conf_get_bool (empathy_conf_get (),
+                              EMPATHY_PREFS_CHAT_SHOW_CONTACTS_IN_ROOMS,
+                              &priv->show_contacts);
+
        /* Block events for some time to avoid having "has come online" or
         * "joined" messages. */
        priv->block_events_timeout_id =
index 12fac9617910f4e1a9a0406483fc1ab25262bc61..c38fd64a6c636092c26c70b315085ef738c48de4 100644 (file)
@@ -82,6 +82,8 @@ void               empathy_chat_correct_word         (EmpathyChat   *chat,
                                                      GtkTextIter   *end,
                                                      const gchar   *new_word);
 gboolean           empathy_chat_is_room              (EmpathyChat   *chat);
+void               empathy_chat_set_show_contacts    (EmpathyChat *chat,
+                                                      gboolean     show);
 G_END_DECLS
 
 #endif /* __EMPATHY_CHAT_H__ */
index 47949139e67ddbd2ff141e41e9191f9bba674273..937a4bf9cb83ebd7091775b6fff3dc5b248d1e35 100644 (file)
@@ -48,6 +48,8 @@ struct _EmpathyConfClass {
 #define EMPATHY_PREFS_NOTIFICATIONS_ENABLED        EMPATHY_PREFS_PATH "/notifications/notifications_enabled"
 #define EMPATHY_PREFS_NOTIFICATIONS_DISABLED_AWAY  EMPATHY_PREFS_PATH "/notifications/notifications_disabled_away"
 #define EMPATHY_PREFS_NOTIFICATIONS_FOCUS          EMPATHY_PREFS_PATH "/notifications/notifications_focus"
+#define EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNIN EMPATHY_PREFS_PATH "/notifications/notifications_contact_signin"
+#define EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNOUT EMPATHY_PREFS_PATH "/notifications/notifications_contact_signout"
 #define EMPATHY_PREFS_SOUNDS_ENABLED               EMPATHY_PREFS_PATH "/sounds/sounds_enabled"
 #define EMPATHY_PREFS_SOUNDS_DISABLED_AWAY         EMPATHY_PREFS_PATH "/sounds/sounds_disabled_away"
 #define EMPATHY_PREFS_SOUNDS_INCOMING_MESSAGE      EMPATHY_PREFS_PATH "/sounds/sounds_incoming_message"
@@ -59,6 +61,7 @@ struct _EmpathyConfClass {
 #define EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT        EMPATHY_PREFS_PATH "/sounds/sounds_contact_logout"
 #define EMPATHY_PREFS_POPUPS_WHEN_AVAILABLE        EMPATHY_PREFS_PATH "/notifications/popups_when_available"
 #define EMPATHY_PREFS_CHAT_SHOW_SMILEYS            EMPATHY_PREFS_PATH "/conversation/graphical_smileys"
+#define EMPATHY_PREFS_CHAT_SHOW_CONTACTS_IN_ROOMS  EMPATHY_PREFS_PATH "/conversation/show_contacts_in_rooms"
 #define EMPATHY_PREFS_CHAT_THEME                   EMPATHY_PREFS_PATH "/conversation/theme"
 #define EMPATHY_PREFS_CHAT_ADIUM_PATH              EMPATHY_PREFS_PATH "/conversation/adium_path"
 #define EMPATHY_PREFS_CHAT_SPELL_CHECKER_LANGUAGES EMPATHY_PREFS_PATH "/conversation/spell_checker_languages"
index 307b0fbb3847724ca82e5360eb701e4ac9668b64..39edbf57924ee52f4cd476398416391fa356e2ef 100644 (file)
@@ -398,7 +398,7 @@ empathy_new_contact_dialog_show (GtkWindow *parent)
                                      button,
                                      GTK_RESPONSE_CANCEL);
        gtk_widget_show (button);
-       
+
        /* Add button */
        button = gtk_button_new_with_label (GTK_STOCK_ADD);
        gtk_button_set_use_stock (GTK_BUTTON (button), TRUE);
index 261b2cc602a5bbcb35ee64647c208d8c092a07ad..0e9372be189bbb9fbea268995748fb7c2481630e 100644 (file)
@@ -601,7 +601,7 @@ empathy_contact_list_store_set_sort_criterium (EmpathyContactListStore     *stor
                                                      EMPATHY_CONTACT_LIST_STORE_COL_STATUS,
                                                      GTK_SORT_ASCENDING);
                break;
-               
+
        case EMPATHY_CONTACT_LIST_STORE_SORT_NAME:
                gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
                                                      EMPATHY_CONTACT_LIST_STORE_COL_NAME,
@@ -738,7 +738,7 @@ contact_list_store_setup (EmpathyContactListStore *store)
                                               G_TYPE_BOOLEAN,       /* Is separator */
                                               G_TYPE_BOOLEAN,       /* Can make audio calls */
                                               G_TYPE_BOOLEAN};      /* Can make video calls */
-       
+
        priv = GET_PRIV (store);
 
        gtk_tree_store_set_column_types (GTK_TREE_STORE (store),
@@ -853,7 +853,7 @@ contact_list_store_add_contact (EmpathyContactListStore *store,
        GList                      *groups = NULL, *l;
 
        priv = GET_PRIV (store);
-       
+
        if (EMP_STR_EMPTY (empathy_contact_get_name (contact)) ||
            (!priv->show_offline && !empathy_contact_is_online (contact))) {
                return;
@@ -922,7 +922,7 @@ contact_list_store_remove_contact (EmpathyContactListStore *store,
        if (!iters) {
                return;
        }
-       
+
        /* Clean up model */
        model = GTK_TREE_MODEL (store);
 
@@ -1156,7 +1156,7 @@ contact_list_store_contact_active_new (EmpathyContactListStore *store,
        DEBUG ("Contact:'%s' now active, and %s be removed",
                empathy_contact_get_name (contact),
                remove ? "WILL" : "WILL NOT");
-       
+
        data = g_slice_new0 (ShowActiveData);
 
        data->store = g_object_ref (store);
index c106653b1d0aaf44db777ac0ab06640e276cabaa..61db60cdf175247144f5f390dc4ea7e4857f0430 100644 (file)
@@ -121,7 +121,7 @@ contact_list_view_tooltip_destroy_cb (GtkWidget              *widget,
                                      EmpathyContactListView *view)
 {
        EmpathyContactListViewPriv *priv = GET_PRIV (view);
-       
+
        if (priv->tooltip_widget) {
                DEBUG ("Tooltip destroyed");
                g_object_unref (priv->tooltip_widget);
@@ -230,7 +230,7 @@ contact_list_view_drag_got_contact (EmpathyTpContactFactory *factory,
        if (data->new_group) {
                empathy_contact_list_add_to_group (list, contact, data->new_group);
        }
-       if (data->old_group && data->action == GDK_ACTION_MOVE) {       
+       if (data->old_group && data->action == GDK_ACTION_MOVE) {
                empathy_contact_list_remove_from_group (list, contact, data->old_group);
        }
 }
@@ -1272,7 +1272,7 @@ empathy_contact_list_view_new (EmpathyContactListStore        *store,
                               EmpathyContactFeatureFlags      contact_features)
 {
        g_return_val_if_fail (EMPATHY_IS_CONTACT_LIST_STORE (store), NULL);
-       
+
        return g_object_new (EMPATHY_TYPE_CONTACT_LIST_VIEW,
                             "store", store,
                             "contact-features", contact_features,
@@ -1344,7 +1344,7 @@ contact_list_view_remove_dialog_show (GtkWindow   *parent,
 {
        GtkWidget *dialog;
        gboolean res;
-       
+
        dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL,
                                         GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
                                         "%s", message);
@@ -1446,7 +1446,7 @@ contact_list_view_remove_activate_cb (GtkMenuItem            *menuitem,
 {
        EmpathyContactListViewPriv *priv = GET_PRIV (view);
        EmpathyContact             *contact;
-               
+
        contact = empathy_contact_list_view_dup_selected (view);
 
        if (contact) {
@@ -1455,7 +1455,7 @@ contact_list_view_remove_activate_cb (GtkMenuItem            *menuitem,
 
                parent = empathy_get_toplevel_window (GTK_WIDGET (view));
                text = g_strdup_printf (_("Do you really want to remove the contact '%s'?"),
-                                       empathy_contact_get_name (contact));                                            
+                                       empathy_contact_get_name (contact));
                if (contact_list_view_remove_dialog_show (parent, _("Removing contact"), text)) {
                        EmpathyContactList *list;
 
index fdd9c34a1b50cb909228adbc48e75d86b94a3982..2bad5c9fe4baaee812c5d0e73744defc68a54741 100644 (file)
@@ -141,7 +141,7 @@ empathy_contact_chat_menu_item_new (EmpathyContact *contact)
        g_signal_connect (item, "activate",
                                  G_CALLBACK (empathy_contact_chat_menu_item_activated),
                                  contact);
-       
+
        return item;
 }
 
@@ -244,7 +244,7 @@ empathy_contact_log_menu_item_new (EmpathyContact *contact)
        g_signal_connect_swapped (item, "activate",
                                  G_CALLBACK (contact_log_menu_item_activate_cb),
                                  contact);
-       
+
        return item;
 }
 
@@ -293,7 +293,7 @@ empathy_contact_info_menu_item_new (EmpathyContact *contact)
        g_signal_connect_swapped (item, "activate",
                                  G_CALLBACK (contact_info_menu_item_activate_cb),
                                  contact);
-       
+
        return item;
 }
 
@@ -320,7 +320,7 @@ empathy_contact_edit_menu_item_new (EmpathyContact *contact)
        g_signal_connect_swapped (item, "activate",
                                  G_CALLBACK (contact_edit_menu_item_activate_cb),
                                  contact);
-       
+
        return item;
 }
 
index dc2efa33246d7ad93f4d8eb7e7209749a12014b4..21d73f8eaf503e7de2a67db664983e59f998b857 100644 (file)
@@ -320,7 +320,7 @@ log_window_find_changed_cb (GtkTreeSelection *selection,
                gtk_widget_set_sensitive (window->button_next, FALSE);
 
                empathy_chat_view_clear (window->chatview_find);
-       
+
                return;
        }
 
@@ -646,7 +646,7 @@ log_window_chats_populate (EmpathyLogWindow *window)
                gtk_list_store_append (store, &iter);
                gtk_list_store_set (store, &iter,
                                    COL_CHAT_ICON, "empathy-available", /* FIXME */
-                                   COL_CHAT_NAME, hit->chat_id,                                
+                                   COL_CHAT_NAME, hit->chat_id,
                                    COL_CHAT_ACCOUNT, account,
                                    COL_CHAT_ID, hit->chat_id,
                                    COL_CHAT_IS_CHATROOM, hit->is_chatroom,
index 512cd1ba384615e4ab2179d17e99fa7e57a0c147..9aee42913aa2fe65482925eaf2c1642f583505bc 100644 (file)
@@ -239,7 +239,7 @@ new_message_change_state_button_cb  (GtkEditable             *editable,
 
        id = gtk_entry_get_text (GTK_ENTRY (editable));
        sensitive = !EMP_STR_EMPTY (id);
-       
+
        gtk_widget_set_sensitive (dialog->button_chat, sensitive);
        gtk_widget_set_sensitive (dialog->button_call, sensitive);
 }
diff --git a/libempathy-gtk/empathy-plist.c b/libempathy-gtk/empathy-plist.c
new file mode 100644 (file)
index 0000000..4cc392b
--- /dev/null
@@ -0,0 +1,336 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2008 Christophe Fergeau <teuf@gnome.org>
+ * Based on itdb_plist parser from the gtkpod project.
+ *
+ * The code contained in this file is free software; you can redistribute
+ * it and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version
+ * 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <telepathy-glib/util.h>
+#include <telepathy-glib/dbus.h>
+
+#include "empathy-plist.h"
+
+static GValue *empathy_plist_parse_node (xmlNode *a_node);
+
+static GValue *
+empathy_plist_parse_integer (xmlNode *a_node)
+{
+       char *str_val;
+       char *end_ptr;
+       gint int_val;
+
+       str_val = (char *) xmlNodeGetContent (a_node);
+       int_val = strtol (str_val, &end_ptr, 0);
+       if (*end_ptr != '\0') {
+               xmlFree (str_val);
+               return NULL;
+       }
+       xmlFree (str_val);
+
+       return tp_g_value_slice_new_int (int_val);
+}
+
+static GValue *
+empathy_plist_parse_string (xmlNode *a_node)
+{
+       char *str_val;
+       GValue *value;
+
+       str_val = (char *) xmlNodeGetContent (a_node);
+
+       value = tp_g_value_slice_new_string (str_val);
+
+       xmlFree (str_val);
+
+       return value;
+}
+
+static GValue *
+empathy_plist_parse_real (xmlNode *a_node)
+{
+       char *str_val;
+       char *end_ptr;
+       gdouble double_val;
+
+       str_val = (char *) xmlNodeGetContent (a_node);
+       double_val = g_ascii_strtod (str_val, &end_ptr);
+       if (*end_ptr != '\0') {
+               xmlFree (str_val);
+               return NULL;
+       }
+       xmlFree (str_val);
+
+       return tp_g_value_slice_new_double (double_val);
+}
+
+static GValue *
+empathy_plist_parse_boolean (xmlNode *a_node)
+{
+       gboolean bool_val;
+
+       if (strcmp ((char *) a_node->name, "true") == 0) {
+               bool_val = TRUE;
+       } else if (strcmp ((char *) a_node->name, "false") == 0) {
+               bool_val = FALSE;
+       } else {
+               return NULL;
+       }
+
+       return tp_g_value_slice_new_boolean (bool_val);
+}
+
+static GValue *
+empathy_plist_parse_data (xmlNode *a_node)
+{
+       char *str_val;
+       guchar *raw_data;
+       gsize len;
+       GValue *value;
+
+       str_val = (char *) xmlNodeGetContent (a_node);
+       raw_data = g_base64_decode (str_val, &len);
+       xmlFree (str_val);
+
+       value = tp_g_value_slice_new_bytes (len, raw_data);
+
+       g_free (raw_data);
+
+       return value;
+}
+
+static xmlNode *
+empathy_plist_parse_one_dict_entry (xmlNode *a_node, GHashTable *dict)
+{
+       xmlNode *cur_node = a_node;
+       xmlChar *key_name;
+       GValue *value;
+
+       while (cur_node &&
+              (xmlStrcmp (cur_node->name, (xmlChar *) "key") != 0)) {
+               cur_node = cur_node->next;
+       }
+       if (!cur_node) {
+               return NULL;
+       }
+       key_name = xmlNodeGetContent (cur_node);
+       cur_node = cur_node->next;
+       while (cur_node && xmlIsBlankNode (cur_node)) {
+               cur_node = cur_node->next;
+       }
+       if (!cur_node) {
+               xmlFree (key_name);
+               return NULL;
+       }
+
+       value = empathy_plist_parse_node (cur_node);
+       if (value) {
+               g_hash_table_insert (dict, g_strdup ((char *) key_name), value);
+       }
+       xmlFree (key_name);
+
+       return cur_node->next;
+}
+
+static GValue *
+empathy_plist_parse_dict (xmlNode *a_node)
+{
+       xmlNode *cur_node = a_node->children;
+       GHashTable *dict;
+
+       dict = g_hash_table_new_full (g_str_hash, g_str_equal,
+                                     g_free, (GDestroyNotify) tp_g_value_slice_free);
+
+       while (cur_node) {
+               if (xmlIsBlankNode (cur_node)) {
+                       cur_node = cur_node->next;
+               } else {
+                       cur_node = empathy_plist_parse_one_dict_entry (cur_node, dict);
+               }
+       }
+
+       return tp_g_value_slice_new_take_boxed (G_TYPE_HASH_TABLE, dict);
+}
+
+static GValue *
+empathy_plist_parse_array (xmlNode *a_node)
+{
+       xmlNode *cur_node = a_node->children;
+       GValueArray *array;
+
+       array = g_value_array_new (4);
+
+       while (cur_node) {
+               GValue *cur_value;
+
+               cur_value = empathy_plist_parse_node (cur_node);
+               if (cur_value) {
+                       g_value_array_append (array, cur_value);
+                       tp_g_value_slice_free (cur_value);
+               }
+
+               /* When an array contains an element enclosed in "unknown" tags (ie
+                * non-type ones), we silently skip them since early
+                * SysInfoExtended files used to have <key> values enclosed within
+                * <array> tags.
+                */
+               cur_node = cur_node->next;
+       }
+
+       return tp_g_value_slice_new_take_boxed (G_TYPE_VALUE_ARRAY, array);
+}
+
+typedef GValue *(*ParseCallback) (xmlNode *);
+
+struct Parser {
+       const char * const type_name;
+       ParseCallback parser;
+};
+
+static const struct Parser parsers[] = { {"integer", empathy_plist_parse_integer},
+                                        {"real",    empathy_plist_parse_real},
+                                        {"string",  empathy_plist_parse_string},
+                                        {"true",    empathy_plist_parse_boolean},
+                                        {"false",   empathy_plist_parse_boolean},
+                                        {"data",    empathy_plist_parse_data},
+                                        {"dict",    empathy_plist_parse_dict},
+                                        {"array",   empathy_plist_parse_array},
+                                        {NULL,   NULL} };
+
+static ParseCallback
+empathy_plist_get_parser_for_type (const xmlChar *type)
+{
+       guint i = 0;
+
+       while (parsers[i].type_name) {
+               if (xmlStrcmp (type, (xmlChar *) parsers[i].type_name) == 0) {
+                       if (parsers[i].parser) {
+                               return parsers[i].parser;
+                       }
+               }
+               i++;
+       }
+       return NULL;
+}
+
+static GValue *
+empathy_plist_parse_node (xmlNode *a_node)
+{
+       ParseCallback parser;
+
+       g_return_val_if_fail (a_node != NULL, NULL);
+       parser = empathy_plist_get_parser_for_type (a_node->name);
+       if (parser) {
+               return parser (a_node);
+       } else {
+               return NULL;
+       }
+}
+
+static GValue *
+empathy_plist_parse (xmlNode * a_node)
+{
+       xmlNode *cur_node;
+
+       if (!a_node) {
+               return NULL;
+       }
+       if (xmlStrcmp (a_node->name, (xmlChar *) "plist") != 0) {
+               return NULL;
+       }
+       cur_node = a_node->xmlChildrenNode;
+       while (cur_node && (xmlIsBlankNode (cur_node))) {
+               cur_node = cur_node->next;
+       }
+       if (cur_node) {
+               return empathy_plist_parse_node (cur_node);
+       }
+
+       return NULL;
+}
+
+/**
+ * empathy_plist_parse_from_file:
+ * @filename: file containing XML plist data to parse
+ *
+ * Parses the XML plist file. If an error occurs during the parsing,
+ * empathy_plist_parse_from_file() will return NULL.
+ *
+ * Returns: NULL on error, a newly allocated
+ * #GValue otherwise. Free it using tp_g_value_slice_free()
+ */
+GValue *
+empathy_plist_parse_from_file (const char *filename)
+{
+       xmlDoc *doc = NULL;
+       xmlNode *root_element = NULL;
+       GValue *parsed_doc;
+
+       doc = xmlReadFile (filename, NULL, 0);
+
+       if (!doc) {
+               return NULL;
+       }
+
+       root_element = xmlDocGetRootElement (doc);
+
+       parsed_doc = empathy_plist_parse (root_element);
+
+       xmlFreeDoc (doc);
+       xmlCleanupParser ();
+
+       return parsed_doc;
+}
+
+/**
+ * empathy_plist_parse_from_memory:
+ * @data:   memory location containing XML plist data to parse
+ * @len:       length in bytes of the string to parse
+ *
+ * Parses the XML plist file stored in @data which length is @len
+ * bytes. If an error occurs during the parsing,
+ * empathy_plist_parse_from_memory() will return NULL.
+ *
+ * Returns: NULL on error, a newly allocated
+ * #GValue otherwise. Free it using tp_g_value_slice_free()
+ */
+GValue *
+empathy_plist_parse_from_memory (const char *data, gsize len)
+{
+       xmlDoc *doc = NULL;
+       xmlNode *root_element = NULL;
+       GValue *parsed_doc;
+
+       doc = xmlReadMemory (data, len, "noname.xml", NULL, 0);
+
+       if (doc == NULL) {
+               return NULL;
+       }
+
+       root_element = xmlDocGetRootElement (doc);
+
+       parsed_doc = empathy_plist_parse (root_element);
+
+       xmlFreeDoc (doc);
+       xmlCleanupParser ();
+
+       return parsed_doc;
+}
+
diff --git a/libempathy-gtk/empathy-plist.h b/libempathy-gtk/empathy-plist.h
new file mode 100644 (file)
index 0000000..a15ad6a
--- /dev/null
@@ -0,0 +1,34 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2008 Christophe Fergeau <teuf@gnome.org>
+ * Based on itdb_plist parser from the gtkpod project.
+ *
+ * The code contained in this file is free software; you can redistribute
+ * it and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version
+ * 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __EMPATHY_PLIST_H__
+#define __EMPATHY_PLIST_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+GValue * empathy_plist_parse_from_file (const char *filename);
+GValue * empathy_plist_parse_from_memory (const char *data, gsize len);
+
+G_END_DECLS
+
+#endif
index 879e04139ad5c80cf0fceacbb097f41975b1a971..8fba26ff7a2af9743f0e62243fbdafd8811a87b8 100644 (file)
@@ -293,7 +293,7 @@ presence_chooser_is_preset (EmpathyPresenceChooser *self)
        for (l = presets; l; l = l->next) {
                char *preset = (char *) l->data;
 
-               if (!strcmp (status, preset)) {
+               if (!tp_strdiff (status, preset)) {
                        match = TRUE;
                        break;
                }
@@ -468,6 +468,10 @@ presence_chooser_entry_icon_release_cb (EmpathyPresenceChooser *self,
                state = empathy_idle_get_state (priv->idle);
                status = empathy_idle_get_status (priv->idle);
 
+               if (!empathy_status_presets_is_valid (state))
+                       /* It doesn't make sense to add such presence as favorite */
+                       return;
+
                if (presence_chooser_is_preset (self)) {
                        /* remove the entry */
                        DEBUG ("REMOVING PRESET (%i, %s)\n", state, status);
index e8f6234245ebd3f6ad23ce57eb79794ef8fbd0c7..900e9211c3953289421939f5a4dd9d6b5c647185 100644 (file)
@@ -314,7 +314,7 @@ empathy_smiley_manager_parse (EmpathySmileyManager *manager,
        for (t = text; *t; t = g_utf8_next_char (t)) {
                SmileyManagerTree *child;
                gunichar           c;
-               
+
                c = g_utf8_get_char (t);
                child = smiley_manager_tree_find_child (cur_tree, c);
 
index 9cd7c555bb4461fcbf29004c6006df86509ff205..076e81a0381bf46fb6d1023956f2b7705e5331d8 100644 (file)
@@ -175,7 +175,7 @@ spell_notify_languages_cb (EmpathyConf  *conf,
 
                enchant_broker_free_dict (lang->config, lang->speller);
                enchant_broker_free (lang->config);
-               
+
                g_slice_free (SpellLanguage, lang);
        }
 
@@ -363,7 +363,7 @@ empathy_spell_get_suggestions (const gchar *word)
 
                suggestions = enchant_dict_suggest (lang->speller, word, len,
                                                    &number_of_suggestions);
-               
+
                for (i = 0; i < number_of_suggestions; i++) {
                        suggestion_list = g_list_append (suggestion_list,
                                                         g_strdup (suggestions[i]));
index 321d1998cf7285ff57aa6492e7c804719396002c..b16a3e7c972d5e878469aeaba44e9fb0af951483 100644 (file)
 #include <glib/gi18n.h>
 
 #include <webkit/webkitnetworkrequest.h>
+#include <telepathy-glib/dbus.h>
+#include <telepathy-glib/util.h>
+
 
 #include <libempathy/empathy-time.h>
 #include <libempathy/empathy-utils.h>
+#include <libmissioncontrol/mc-profile.h>
 
 #include "empathy-theme-adium.h"
 #include "empathy-smiley-manager.h"
 #include "empathy-conf.h"
 #include "empathy-ui-utils.h"
+#include "empathy-plist.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_CHAT
 #include <libempathy/empathy-debug.h>
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyThemeAdium)
 
+/* "Join" consecutive messages with timestamps within five minutes */
+#define MESSAGE_JOIN_PERIOD 5*60
+
 typedef struct {
+       EmpathyAdiumData     *data;
        EmpathySmileyManager *smiley_manager;
        EmpathyContact       *last_contact;
+       time_t                last_timestamp;
        gboolean              page_loaded;
        GList                *message_queue;
-       gchar                *path;
-       gchar                *default_avatar_filename;
-       gchar                *template_html;
-       gchar                *basedir;
-       gchar                *in_content_html;
-       gsize                 in_content_len;
-       gchar                *in_nextcontent_html;
-       gsize                 in_nextcontent_len;
-       gchar                *out_content_html;
-       gsize                 out_content_len;
-       gchar                *out_nextcontent_html;
-       gsize                 out_nextcontent_len;
-       gchar                *status_html;
-       gsize                 status_len;
 } EmpathyThemeAdiumPriv;
 
+struct _EmpathyAdiumData {
+       guint  ref_count;
+       gchar *path;
+       gchar *basedir;
+       gchar *default_avatar_filename;
+       gchar *default_incoming_avatar_filename;
+       gchar *default_outgoing_avatar_filename;
+       gchar *template_html;
+       gchar *in_content_html;
+       gsize  in_content_len;
+       gchar *in_nextcontent_html;
+       gsize  in_nextcontent_len;
+       gchar *out_content_html;
+       gsize  out_content_len;
+       gchar *out_nextcontent_html;
+       gsize  out_nextcontent_len;
+       gchar *status_html;
+       gsize  status_len;
+       GHashTable *info;
+};
+
 static void theme_adium_iface_init (EmpathyChatViewIface *iface);
 
 enum {
        PROP_0,
-       PROP_PATH,
+       PROP_ADIUM_DATA,
 };
 
 G_DEFINE_TYPE_WITH_CODE (EmpathyThemeAdium, empathy_theme_adium,
@@ -72,100 +89,6 @@ G_DEFINE_TYPE_WITH_CODE (EmpathyThemeAdium, empathy_theme_adium,
                         G_IMPLEMENT_INTERFACE (EMPATHY_TYPE_CHAT_VIEW,
                                                theme_adium_iface_init));
 
-static void
-theme_adium_load (EmpathyThemeAdium *theme)
-{
-       EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
-       gchar                 *file;
-       gchar                 *template_html = NULL;
-       gsize                  template_len;
-       GString               *string;
-       gchar                **strv = NULL;
-       gchar                 *css_path;
-       guint                  len = 0;
-       guint                  i = 0;
-       gchar                 *basedir_uri;
-
-       priv->basedir = g_strconcat (priv->path, G_DIR_SEPARATOR_S "Contents" G_DIR_SEPARATOR_S "Resources" G_DIR_SEPARATOR_S, NULL);
-       basedir_uri = g_strconcat ("file://", priv->basedir, NULL);
-
-       /* Load html files */
-       file = g_build_filename (priv->basedir, "Incoming", "Content.html", NULL);
-       g_file_get_contents (file, &priv->in_content_html, &priv->in_content_len, NULL);
-       g_free (file);
-
-       file = g_build_filename (priv->basedir, "Incoming", "NextContent.html", NULL);
-       g_file_get_contents (file, &priv->in_nextcontent_html, &priv->in_nextcontent_len, NULL);
-       g_free (file);
-
-       file = g_build_filename (priv->basedir, "Outgoing", "Content.html", NULL);
-       g_file_get_contents (file, &priv->out_content_html, &priv->out_content_len, NULL);
-       g_free (file);
-
-       file = g_build_filename (priv->basedir, "Outgoing", "NextContent.html", NULL);
-       g_file_get_contents (file, &priv->out_nextcontent_html, &priv->out_nextcontent_len, NULL);
-       g_free (file);
-
-       file = g_build_filename (priv->basedir, "Status.html", NULL);
-       g_file_get_contents (file, &priv->status_html, &priv->status_len, NULL);
-       g_free (file);
-
-       css_path = g_build_filename (priv->basedir, "main.css", NULL);
-
-       /* There is 2 formats for Template.html: The old one has 4 parameters,
-        * the new one has 5 parameters. */
-       file = g_build_filename (priv->basedir, "Template.html", NULL);
-       if (g_file_get_contents (file, &template_html, &template_len, NULL)) {
-               strv = g_strsplit (template_html, "%@", -1);
-               len = g_strv_length (strv);
-       }
-       g_free (file);
-
-       if (len != 5 && len != 6) {
-               /* Either the theme has no template or it don't have the good
-                * number of parameters. Fallback to use our own template. */
-               g_free (template_html);
-               g_strfreev (strv);
-
-               file = empathy_file_lookup ("Template.html", "data");
-               g_file_get_contents (file, &template_html, &template_len, NULL);
-               g_free (file);
-               strv = g_strsplit (template_html, "%@", -1);
-               len = g_strv_length (strv);
-       }
-
-       /* Replace %@ with the needed information in the template html. */
-       string = g_string_sized_new (template_len);
-       g_string_append (string, strv[i++]);
-       g_string_append (string, priv->basedir);
-       g_string_append (string, strv[i++]);
-       if (len == 6) {
-               /* We include main.css by default */
-               g_string_append_printf (string, "@import url(\"%s\");", css_path);
-               g_string_append (string, strv[i++]);
-               /* FIXME: We should set the variant css here */
-               g_string_append (string, "");
-       } else {
-               /* FIXME: We should set main.css OR the variant css */
-               g_string_append (string, css_path);
-       }
-       g_string_append (string, strv[i++]);
-       g_string_append (string, ""); /* We don't want header */
-       g_string_append (string, strv[i++]);
-       g_string_append (string, ""); /* FIXME: We don't support footer yet */
-       g_string_append (string, strv[i++]);
-       priv->template_html = g_string_free (string, FALSE);
-
-       /* Load the template */
-       webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (theme),
-                                         priv->template_html, basedir_uri);
-
-       g_free (basedir_uri);
-       g_free (template_html);
-       g_free (css_path);
-       g_strfreev (strv);
-}
-
 static WebKitNavigationResponse
 theme_adium_navigation_requested_cb (WebKitWebView        *view,
                                     WebKitWebFrame       *frame,
@@ -190,12 +113,12 @@ theme_adium_populate_popup_cb (WebKitWebView *view,
        /* Remove default menu items */
        gtk_container_foreach (GTK_CONTAINER (menu),
                (GtkCallback) gtk_widget_destroy, NULL);
-       
+
        /* Select all item */
        item = gtk_image_menu_item_new_from_stock (GTK_STOCK_SELECT_ALL, NULL);
        gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
        gtk_widget_show (item);
-               
+
        g_signal_connect_swapped (item, "activate",
                                  G_CALLBACK (webkit_web_view_select_all),
                                  view);
@@ -205,7 +128,7 @@ theme_adium_populate_popup_cb (WebKitWebView *view,
                item = gtk_image_menu_item_new_from_stock (GTK_STOCK_COPY, NULL);
                gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
                gtk_widget_show (item);
-               
+
                g_signal_connect_swapped (item, "activate",
                                          G_CALLBACK (webkit_web_view_copy_clipboard),
                                          view);
@@ -215,11 +138,11 @@ theme_adium_populate_popup_cb (WebKitWebView *view,
        item = gtk_separator_menu_item_new ();
        gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
        gtk_widget_show (item);
-               
+
        item = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLEAR, NULL);
        gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
        gtk_widget_show (item);
-               
+
        g_signal_connect_swapped (item, "activate",
                                  G_CALLBACK (empathy_chat_view_clear),
                                  view);
@@ -343,7 +266,7 @@ escape_and_append_len (GString *string, const gchar *str, gint len)
                switch (*str) {
                case '\\':
                        /* \ becomes \\ */
-                       g_string_append (string, "\\\\");       
+                       g_string_append (string, "\\\\");
                        break;
                case '\"':
                        /* " becomes \" */
@@ -382,6 +305,9 @@ theme_adium_append_html (EmpathyThemeAdium *theme,
                         const gchar       *message,
                         const gchar       *avatar_filename,
                         const gchar       *name,
+                        const gchar       *contact_id,
+                        const gchar       *service_name,
+                        const gchar       *message_classes,
                         time_t             timestamp)
 {
        GString     *string;
@@ -397,10 +323,28 @@ theme_adium_append_html (EmpathyThemeAdium *theme,
 
                if (theme_adium_match (&cur, "%message%")) {
                        replace = message;
+               } else if (theme_adium_match (&cur, "%messageClasses%")) {
+                       replace = message_classes;
                } else if (theme_adium_match (&cur, "%userIconPath%")) {
                        replace = avatar_filename;
                } else if (theme_adium_match (&cur, "%sender%")) {
                        replace = name;
+               } else if (theme_adium_match (&cur, "%senderScreenName%")) {
+                       replace = contact_id;
+               } else if (theme_adium_match (&cur, "%senderDisplayName%")) {
+                       /* %senderDisplayName% -
+                        * "The serverside (remotely set) name of the sender,
+                        *  such as an MSN display name."
+                        *
+                        * We don't have access to that yet so we use local
+                        * alias instead.*/
+                       replace = name;
+               } else if (theme_adium_match (&cur, "%service%")) {
+                       replace = service_name;
+               } else if (theme_adium_match (&cur, "%shortTime%")) {
+                       dup_replace = empathy_time_to_string_local (timestamp,
+                               EMPATHY_TIME_FORMAT_DISPLAY_SHORT);
+                       replace = dup_replace;
                } else if (theme_adium_match (&cur, "%time")) {
                        gchar *format = NULL;
                        gchar *end;
@@ -448,15 +392,20 @@ theme_adium_append_message (EmpathyChatView *view,
        EmpathyThemeAdium     *theme = EMPATHY_THEME_ADIUM (view);
        EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
        EmpathyContact        *sender;
+       McAccount             *account;
+       McProfile             *account_profile;
        gchar                 *dup_body = NULL;
        const gchar           *body;
        const gchar           *name;
+       const gchar           *contact_id;
        EmpathyAvatar         *avatar;
        const gchar           *avatar_filename = NULL;
        time_t                 timestamp;
        gchar                 *html = NULL;
        gsize                  len = 0;
        const gchar           *func;
+       const gchar           *service_name;
+       const gchar           *message_classes = NULL;
 
        if (!priv->page_loaded) {
                priv->message_queue = g_list_prepend (priv->message_queue,
@@ -466,6 +415,9 @@ theme_adium_append_message (EmpathyChatView *view,
 
        /* Get information */
        sender = empathy_message_get_sender (msg);
+       account = empathy_contact_get_account (sender);
+       account_profile = mc_account_get_profile (account);
+       service_name = mc_profile_get_display_name (account_profile);
        timestamp = empathy_message_get_timestamp (msg);
        body = empathy_message_get_body (msg);
        dup_body = theme_adium_parse_body (theme, body);
@@ -473,6 +425,7 @@ theme_adium_append_message (EmpathyChatView *view,
                body = dup_body;
        }
        name = empathy_contact_get_name (sender);
+       contact_id = empathy_contact_get_id (sender);
 
        /* If this is a /me, append an event */
        if (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) {
@@ -491,46 +444,68 @@ theme_adium_append_message (EmpathyChatView *view,
                avatar_filename = avatar->filename;
        }
        if (!avatar_filename) {
-               if (!priv->default_avatar_filename) {
-                       priv->default_avatar_filename =
-                               empathy_filename_from_icon_name ("stock_person",
-                                                                GTK_ICON_SIZE_DIALOG);
+               if (empathy_contact_is_user (sender)) {
+                       avatar_filename = priv->data->default_outgoing_avatar_filename;
+               } else {
+                       avatar_filename = priv->data->default_incoming_avatar_filename;
+               }
+               if (!avatar_filename) {
+                       if (!priv->data->default_avatar_filename) {
+                               priv->data->default_avatar_filename =
+                                       empathy_filename_from_icon_name ("stock_person",
+                                                                        GTK_ICON_SIZE_DIALOG);
+                       }
+                       avatar_filename = priv->data->default_avatar_filename;
                }
-               avatar_filename = priv->default_avatar_filename;
        }
 
        /* Get the right html/func to add the message */
        func = "appendMessage";
-       if (empathy_contact_equal (priv->last_contact, sender)) {
+       /*
+        * To mimick Adium's behavior, we only want to join messages
+        * sent within a 5 minute time frame.
+        */
+       if (empathy_contact_equal (priv->last_contact, sender) &&
+           (timestamp - priv->last_timestamp < MESSAGE_JOIN_PERIOD)) {
                func = "appendNextMessage";
                if (empathy_contact_is_user (sender)) {
-                       html = priv->out_nextcontent_html;
-                       len = priv->out_nextcontent_len;
+                       message_classes = "consecutive incoming message";
+                       html = priv->data->out_nextcontent_html;
+                       len = priv->data->out_nextcontent_len;
                }
                if (!html) {
-                       html = priv->in_nextcontent_html;
-                       len = priv->in_nextcontent_len;
+                       message_classes = "consecutive message outgoing";
+                       html = priv->data->in_nextcontent_html;
+                       len = priv->data->in_nextcontent_len;
                }
        }
        if (!html) {
                if (empathy_contact_is_user (sender)) {
-                       html = priv->out_content_html;
-                       len = priv->out_content_len;
+                       if (!message_classes) {
+                               message_classes = "incoming message";
+                       }
+                       html = priv->data->out_content_html;
+                       len = priv->data->out_content_len;
                }
                if (!html) {
-                       html = priv->in_content_html;
-                       len = priv->in_content_len;
+                       if (!message_classes) {
+                               message_classes = "message outgoing";
+                       }
+                       html = priv->data->in_content_html;
+                       len = priv->data->in_content_len;
                }
        }
 
        theme_adium_append_html (theme, func, html, len, body, avatar_filename,
-                                name, timestamp);
+                                name, contact_id, service_name, message_classes,
+                                timestamp);
 
        /* Keep the sender of the last displayed message */
        if (priv->last_contact) {
                g_object_unref (priv->last_contact);
        }
        priv->last_contact = g_object_ref (sender);
+       priv->last_timestamp = timestamp;
 
        g_free (dup_body);
 }
@@ -542,10 +517,11 @@ theme_adium_append_event (EmpathyChatView *view,
        EmpathyThemeAdium     *theme = EMPATHY_THEME_ADIUM (view);
        EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
 
-       if (priv->status_html) {
+       if (priv->data->status_html) {
                theme_adium_append_html (theme, "appendMessage",
-                                        priv->status_html, priv->status_len,
-                                        str, NULL, NULL,
+                                        priv->data->status_html,
+                                        priv->data->status_len,
+                                        str, NULL, NULL, NULL, NULL, "event",
                                         empathy_time_get_current ());
        }
 
@@ -583,9 +559,10 @@ theme_adium_clear (EmpathyChatView *view)
        gchar *basedir_uri;
 
        priv->page_loaded = FALSE;
-       basedir_uri = g_strconcat ("file://", priv->basedir, NULL);
+       basedir_uri = g_strconcat ("file://", priv->data->basedir, NULL);
        webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (view),
-                                         priv->template_html, basedir_uri);
+                                         priv->data->template_html,
+                                         basedir_uri);
        g_free (basedir_uri);
 }
 
@@ -683,14 +660,7 @@ theme_adium_finalize (GObject *object)
 {
        EmpathyThemeAdiumPriv *priv = GET_PRIV (object);
 
-       g_free (priv->basedir);
-       g_free (priv->template_html);
-       g_free (priv->in_content_html);
-       g_free (priv->in_nextcontent_html);
-       g_free (priv->out_content_html);
-       g_free (priv->out_nextcontent_html);
-       g_free (priv->default_avatar_filename);
-       g_free (priv->path);
+       empathy_adium_data_unref (priv->data);
 
        G_OBJECT_CLASS (empathy_theme_adium_parent_class)->finalize (object);
 }
@@ -716,7 +686,32 @@ theme_adium_dispose (GObject *object)
 static void
 theme_adium_constructed (GObject *object)
 {
-       theme_adium_load (EMPATHY_THEME_ADIUM (object));
+       EmpathyThemeAdiumPriv *priv = GET_PRIV (object);
+       gchar                 *basedir_uri;
+       const gchar           *font_family = NULL;
+       gint                   font_size = 0;
+       WebKitWebSettings     *webkit_settings;
+
+       /* Set default settings */
+       font_family = tp_asv_get_string (priv->data->info, "DefaultFontFamily");
+       font_size = tp_asv_get_int32 (priv->data->info, "DefaultFontSize", NULL);
+       webkit_settings = webkit_web_settings_new ();
+       if (font_family) {
+               g_object_set (G_OBJECT (webkit_settings), "default-font-family", font_family, NULL);
+       }
+       if (font_size) {
+               g_object_set (G_OBJECT (webkit_settings), "default-font-size", font_size, NULL);
+       }
+       webkit_web_view_set_settings (WEBKIT_WEB_VIEW (object), webkit_settings);
+
+       /* Load template */
+       basedir_uri = g_strconcat ("file://", priv->data->basedir, NULL);
+       webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (object),
+                                         priv->data->template_html,
+                                         basedir_uri);
+
+       g_object_unref (webkit_settings);
+       g_free (basedir_uri);
 }
 
 static void
@@ -728,8 +723,8 @@ theme_adium_get_property (GObject    *object,
        EmpathyThemeAdiumPriv *priv = GET_PRIV (object);
 
        switch (param_id) {
-       case PROP_PATH:
-               g_value_set_string (value, priv->path);
+       case PROP_ADIUM_DATA:
+               g_value_set_boxed (value, priv->data);
                break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -746,9 +741,9 @@ theme_adium_set_property (GObject      *object,
        EmpathyThemeAdiumPriv *priv = GET_PRIV (object);
 
        switch (param_id) {
-       case PROP_PATH:
-               g_free (priv->path);
-               priv->path = g_value_dup_string (value);
+       case PROP_ADIUM_DATA:
+               g_assert (priv->data == NULL);
+               priv->data = g_value_dup_boxed (value);
                break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -760,7 +755,7 @@ static void
 empathy_theme_adium_class_init (EmpathyThemeAdiumClass *klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
-       
+
        object_class->finalize = theme_adium_finalize;
        object_class->dispose = theme_adium_dispose;
        object_class->constructed = theme_adium_constructed;
@@ -768,13 +763,14 @@ empathy_theme_adium_class_init (EmpathyThemeAdiumClass *klass)
        object_class->set_property = theme_adium_set_property;
 
        g_object_class_install_property (object_class,
-                                        PROP_PATH,
-                                        g_param_spec_string ("path",
-                                                             "The theme path",
-                                                             "Path to the adium theme",
-                                                             g_get_home_dir (),
+                                        PROP_ADIUM_DATA,
+                                        g_param_spec_boxed ("adium-data",
+                                                            "The theme data",
+                                                            "Data for the adium theme",
+                                                             EMPATHY_TYPE_ADIUM_DATA,
                                                              G_PARAM_CONSTRUCT_ONLY |
-                                                             G_PARAM_READWRITE));
+                                                             G_PARAM_READWRITE |
+                                                             G_PARAM_STATIC_STRINGS));
 
 
        g_type_class_add_private (object_class, sizeof (EmpathyThemeAdiumPriv));
@@ -786,7 +782,7 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
        EmpathyThemeAdiumPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (theme,
                EMPATHY_TYPE_THEME_ADIUM, EmpathyThemeAdiumPriv);
 
-       theme->priv = priv;     
+       theme->priv = priv;
 
        priv->smiley_manager = empathy_smiley_manager_dup_singleton ();
 
@@ -802,17 +798,17 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
 }
 
 EmpathyThemeAdium *
-empathy_theme_adium_new (const gchar *path)
+empathy_theme_adium_new (EmpathyAdiumData *data)
 {
-       g_return_val_if_fail (empathy_theme_adium_is_valid (path), NULL);
+       g_return_val_if_fail (data != NULL, NULL);
 
        return g_object_new (EMPATHY_TYPE_THEME_ADIUM,
-                            "path", path,
+                            "adium-data", data,
                             NULL);
 }
 
 gboolean
-empathy_theme_adium_is_valid (const gchar *path)
+empathy_adium_path_is_valid (const gchar *path)
 {
        gboolean ret;
        gchar   *file;
@@ -829,3 +825,227 @@ empathy_theme_adium_is_valid (const gchar *path)
        return ret;
 }
 
+GHashTable *
+empathy_adium_info_new (const gchar *path)
+{
+       gchar *file;
+       GValue *value;
+       GHashTable *info = NULL;
+
+       g_return_val_if_fail (empathy_adium_path_is_valid (path), NULL);
+
+       file = g_build_filename (path, "Contents", "Info.plist", NULL);
+       value = empathy_plist_parse_from_file (file);
+       g_free (file);
+
+       if (value) {
+               info = g_value_dup_boxed (value);
+               tp_g_value_slice_free (value);
+       }
+
+       return info;
+}
+
+GType
+empathy_adium_data_get_type (void)
+{
+  static GType type_id = 0;
+
+  if (!type_id)
+    {
+      type_id = g_boxed_type_register_static ("EmpathyAdiumData",
+          (GBoxedCopyFunc) empathy_adium_data_ref,
+          (GBoxedFreeFunc) empathy_adium_data_unref);
+    }
+
+  return type_id;
+}
+
+EmpathyAdiumData  *
+empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
+{
+       EmpathyAdiumData *data;
+       gchar            *file;
+       gchar            *template_html = NULL;
+       gsize             template_len;
+       gchar            *footer_html = NULL;
+       gsize             footer_len;
+       GString          *string;
+       gchar           **strv = NULL;
+       gchar            *css_path;
+       guint             len = 0;
+       guint             i = 0;
+
+       g_return_val_if_fail (empathy_adium_path_is_valid (path), NULL);
+
+       data = g_slice_new0 (EmpathyAdiumData);
+       data->ref_count = 1;
+       data->path = g_strdup (path);
+       data->basedir = g_strconcat (path, G_DIR_SEPARATOR_S "Contents"
+               G_DIR_SEPARATOR_S "Resources" G_DIR_SEPARATOR_S, NULL);
+       data->info = g_hash_table_ref (info);
+
+       /* Load html files */
+       file = g_build_filename (data->basedir, "Incoming", "Content.html", NULL);
+       g_file_get_contents (file, &data->in_content_html, &data->in_content_len, NULL);
+       g_free (file);
+
+       file = g_build_filename (data->basedir, "Incoming", "NextContent.html", NULL);
+       g_file_get_contents (file, &data->in_nextcontent_html, &data->in_nextcontent_len, NULL);
+       g_free (file);
+
+       file = g_build_filename (data->basedir, "Outgoing", "Content.html", NULL);
+       g_file_get_contents (file, &data->out_content_html, &data->out_content_len, NULL);
+       g_free (file);
+
+       file = g_build_filename (data->basedir, "Outgoing", "NextContent.html", NULL);
+       g_file_get_contents (file, &data->out_nextcontent_html, &data->out_nextcontent_len, NULL);
+       g_free (file);
+
+       file = g_build_filename (data->basedir, "Status.html", NULL);
+       g_file_get_contents (file, &data->status_html, &data->status_len, NULL);
+       g_free (file);
+
+       file = g_build_filename (data->basedir, "Footer.html", NULL);
+       g_file_get_contents (file, &footer_html, &footer_len, NULL);
+       g_free (file);
+
+       file = g_build_filename (data->basedir, "Incoming", "buddy_icon.png", NULL);
+       if (g_file_test (file, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               data->default_incoming_avatar_filename = file;
+       } else {
+               g_free (file);
+       }
+
+       file = g_build_filename (data->basedir, "Outgoing", "buddy_icon.png", NULL);
+       if (g_file_test (file, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               data->default_outgoing_avatar_filename = file;
+       } else {
+               g_free (file);
+       }
+
+       css_path = g_build_filename (data->basedir, "main.css", NULL);
+
+       /* There is 2 formats for Template.html: The old one has 4 parameters,
+        * the new one has 5 parameters. */
+       file = g_build_filename (data->basedir, "Template.html", NULL);
+       if (g_file_get_contents (file, &template_html, &template_len, NULL)) {
+               strv = g_strsplit (template_html, "%@", -1);
+               len = g_strv_length (strv);
+       }
+       g_free (file);
+
+       if (len != 5 && len != 6) {
+               /* Either the theme has no template or it don't have the good
+                * number of parameters. Fallback to use our own template. */
+               g_free (template_html);
+               g_strfreev (strv);
+
+               file = empathy_file_lookup ("Template.html", "data");
+               g_file_get_contents (file, &template_html, &template_len, NULL);
+               g_free (file);
+               strv = g_strsplit (template_html, "%@", -1);
+               len = g_strv_length (strv);
+       }
+
+       /* Replace %@ with the needed information in the template html. */
+       string = g_string_sized_new (template_len);
+       g_string_append (string, strv[i++]);
+       g_string_append (string, data->basedir);
+       g_string_append (string, strv[i++]);
+       if (len == 6) {
+               const gchar *variant;
+
+               /* We include main.css by default */
+               g_string_append_printf (string, "@import url(\"%s\");", css_path);
+               g_string_append (string, strv[i++]);
+               variant = tp_asv_get_string (data->info, "DefaultVariant");
+               if (variant) {
+                       g_string_append (string, "Variants/");
+                       g_string_append (string, variant);
+                       g_string_append (string, ".css");
+               }
+       } else {
+               /* FIXME: We should set main.css OR the variant css */
+               g_string_append (string, css_path);
+       }
+       g_string_append (string, strv[i++]);
+       g_string_append (string, ""); /* We don't want header */
+       g_string_append (string, strv[i++]);
+       /* FIXME: We should replace adium %macros% in footer */
+       if (footer_html) {
+               g_string_append (string, footer_html);
+       }
+       g_string_append (string, strv[i++]);
+       data->template_html = g_string_free (string, FALSE);
+
+       g_free (footer_html);
+       g_free (template_html);
+       g_free (css_path);
+       g_strfreev (strv);
+
+       return data;
+}
+
+EmpathyAdiumData  *
+empathy_adium_data_new (const gchar *path)
+{
+       EmpathyAdiumData *data;
+       GHashTable *info;
+
+       info = empathy_adium_info_new (path);
+       data = empathy_adium_data_new_with_info (path, info);
+       g_hash_table_unref (info);
+
+       return data;
+}
+
+EmpathyAdiumData  *
+empathy_adium_data_ref (EmpathyAdiumData *data)
+{
+       g_return_val_if_fail (data != NULL, NULL);
+
+       data->ref_count++;
+
+       return data;
+}
+
+void
+empathy_adium_data_unref (EmpathyAdiumData *data)
+{
+       g_return_if_fail (data != NULL);
+
+       data->ref_count--;
+       if (data->ref_count == 0) {
+               g_free (data->path);
+               g_free (data->basedir);
+               g_free (data->template_html);
+               g_free (data->in_content_html);
+               g_free (data->in_nextcontent_html);
+               g_free (data->out_content_html);
+               g_free (data->out_nextcontent_html);
+               g_free (data->default_avatar_filename);
+               g_free (data->default_incoming_avatar_filename);
+               g_free (data->default_outgoing_avatar_filename);
+               g_free (data->status_html);
+               g_hash_table_unref (data->info);
+               g_slice_free (EmpathyAdiumData, data);
+       }
+}
+
+GHashTable *
+empathy_adium_data_get_info (EmpathyAdiumData *data)
+{
+       g_return_val_if_fail (data != NULL, NULL);
+
+       return data->info;
+}
+
+const gchar *
+empathy_adium_data_get_path (EmpathyAdiumData *data)
+{
+       g_return_val_if_fail (data != NULL, NULL);
+
+       return data->path;
+}
+
index b626756808a639a47b83f19ae3b7d45044734113..a8ed19de40bd7f762f7d20a1f582fb02a945bc97 100644 (file)
@@ -37,6 +37,7 @@ G_BEGIN_DECLS
 
 typedef struct _EmpathyThemeAdium      EmpathyThemeAdium;
 typedef struct _EmpathyThemeAdiumClass EmpathyThemeAdiumClass;
+typedef struct _EmpathyAdiumData       EmpathyAdiumData;
 
 struct _EmpathyThemeAdium {
        WebKitWebView parent;
@@ -48,8 +49,21 @@ struct _EmpathyThemeAdiumClass {
 };
 
 GType              empathy_theme_adium_get_type (void) G_GNUC_CONST;
-EmpathyThemeAdium *empathy_theme_adium_new      (const gchar *path);
-gboolean           empathy_theme_adium_is_valid (const gchar *path);
+EmpathyThemeAdium *empathy_theme_adium_new      (EmpathyAdiumData *data);
+
+gboolean           empathy_adium_path_is_valid (const gchar *path);
+GHashTable        *empathy_adium_info_new (const gchar *path);
+
+#define EMPATHY_TYPE_ADIUM_DATA (empathy_adium_data_get_type ())
+GType              empathy_adium_data_get_type (void) G_GNUC_CONST;
+EmpathyAdiumData  *empathy_adium_data_new (const gchar *path);
+EmpathyAdiumData  *empathy_adium_data_new_with_info (const gchar *path,
+                                                    GHashTable *info);
+EmpathyAdiumData  *empathy_adium_data_ref (EmpathyAdiumData *data);
+void               empathy_adium_data_unref (EmpathyAdiumData *data);
+GHashTable        *empathy_adium_data_get_info (EmpathyAdiumData *data);
+const gchar       *empathy_adium_data_get_path (EmpathyAdiumData *data);
+
 
 G_END_DECLS
 
index 64d95d4f2db1ec17a3b05bd8d006d336cc3fd850..f5224278caace526613ea0891e515e5fa2b0ac06 100644 (file)
@@ -167,7 +167,7 @@ table_size_allocate_cb (GtkWidget     *view,
         gtk_widget_get_size_request (box, NULL, &height);
 
        width = allocation->width;
-       
+
        width -= \
                gtk_text_view_get_right_margin (GTK_TEXT_VIEW (view)) - \
                gtk_text_view_get_left_margin (GTK_TEXT_VIEW (view));
@@ -269,7 +269,7 @@ theme_boxes_maybe_append_header (EmpathyThemeBoxes *theme,
                               NULL);
        g_free (tmp);
        g_free (str);
-       
+
        /* Set foreground color of labels to the same color than the header tag. */
        table = gtk_text_buffer_get_tag_table (buffer);
        tag = gtk_text_tag_table_lookup (table, EMPATHY_THEME_BOXES_TAG_HEADER);
@@ -349,7 +349,7 @@ theme_boxes_notify_show_avatars_cb (EmpathyConf *conf,
                                    gpointer     user_data)
 {
        EmpathyThemeBoxesPriv *priv = GET_PRIV (user_data);
-       
+
        empathy_conf_get_bool (conf, key, &priv->show_avatars);
 }
 
index 183a5cc51282f6f9006f351c929a5801eabc3a92..5d298564e4c686d15ee2e3b94eb2f2eedb9936ae 100644 (file)
@@ -83,7 +83,7 @@ theme_irc_append_message (EmpathyChatTextView *view,
                        nick_tag = EMPATHY_THEME_IRC_TAG_NICK_OTHER;
                }
        }
-               
+
        gtk_text_buffer_get_end_iter (buffer, &iter);
 
        /* The nickname. */
index c6da8ea68cf3919f1895795059c58c9138f60489..ba3d48e683e40533c4668288d7a548f0243062f9 100644 (file)
@@ -193,7 +193,7 @@ theme_manager_update_boxes_tags (EmpathyThemeBoxes *theme,
 
        /* FIXME: GtkTextTag don't support to set color properties to NULL.
         * See bug #542523 */
-       
+
        #define TAG_SET(prop, prop_set, value) \
                if (value != NULL) { \
                        g_object_set (tag, prop, value, NULL); \
@@ -252,7 +252,7 @@ theme_manager_update_boxes_tags (EmpathyThemeBoxes *theme,
 }
 
 static void
-theme_manager_update_simple_tags (EmpathyThemeBoxes *theme)
+on_style_set_cb (GtkWidget *widget, GtkStyle *previous_style, gpointer data)
 {
        GtkStyle *style;
        gchar     color1[10];
@@ -260,14 +260,14 @@ theme_manager_update_simple_tags (EmpathyThemeBoxes *theme)
        gchar     color3[10];
        gchar     color4[10];
 
-       style = gtk_widget_get_default_style ();
+       style = gtk_widget_get_style (GTK_WIDGET (widget));
 
        theme_manager_gdk_color_to_hex (&style->base[GTK_STATE_SELECTED], color1);
        theme_manager_gdk_color_to_hex (&style->bg[GTK_STATE_SELECTED], color2);
        theme_manager_gdk_color_to_hex (&style->dark[GTK_STATE_SELECTED], color3);
        theme_manager_gdk_color_to_hex (&style->fg[GTK_STATE_SELECTED], color4);
 
-       theme_manager_update_boxes_tags (theme,
+       theme_manager_update_boxes_tags (EMPATHY_THEME_BOXES (widget),
                                         color4,     /* header_foreground */
                                         color2,     /* header_background */
                                         color3,     /* header_line_background */
@@ -287,7 +287,8 @@ theme_manager_update_boxes_theme (EmpathyThemeManager *manager,
        EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
 
        if (strcmp (priv->name, "simple") == 0) {
-               theme_manager_update_simple_tags (theme);
+               g_signal_connect (G_OBJECT (theme), "style-set",
+                                 G_CALLBACK (on_style_set_cb), theme);
        }
        else if (strcmp (priv->name, "clean") == 0) {
                theme_manager_update_boxes_tags (theme,
@@ -329,8 +330,28 @@ empathy_theme_manager_create_view (EmpathyThemeManager *manager)
 
 #ifdef HAVE_WEBKIT
        if (strcmp (priv->name, "adium") == 0)  {
-               if (empathy_theme_adium_is_valid (priv->adium_path)) {
-                       return EMPATHY_CHAT_VIEW (empathy_theme_adium_new (priv->adium_path));
+               if (empathy_adium_path_is_valid (priv->adium_path)) {
+                       static EmpathyAdiumData *data = NULL;
+                       EmpathyThemeAdium *theme_adium;
+
+                       if (data &&
+                           !tp_strdiff (empathy_adium_data_get_path (data),
+                                        priv->adium_path)) {
+                               /* Theme did not change, reuse data */
+                               theme_adium = empathy_theme_adium_new (data);
+                               return EMPATHY_CHAT_VIEW (theme_adium);
+                       }
+
+                       /* Theme changed, drop old data if any and
+                        * load a new one */
+                       if (data) {
+                               empathy_adium_data_unref (data);
+                               data = NULL;
+                       }
+
+                       data = empathy_adium_data_new (priv->adium_path);
+                       theme_adium = empathy_theme_adium_new (data);
+                       return EMPATHY_CHAT_VIEW (theme_adium);
                } else {
                        /* The adium path is not valid, fallback to classic theme */
                        return EMPATHY_CHAT_VIEW (theme_manager_create_irc_view (manager));
@@ -348,25 +369,6 @@ empathy_theme_manager_create_view (EmpathyThemeManager *manager)
        return EMPATHY_CHAT_VIEW (theme);
 }
 
-static void
-theme_manager_color_hash_notify_cb (EmpathyThemeManager *manager)
-{
-       EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-
-       /* FIXME: Make that work, it should update color when theme changes but
-        * it doesnt seems to work with all themes. */
-
-       if (strcmp (priv->name, "simple") == 0) {
-               GList *l;
-
-               /* We are using the simple theme which use the GTK theme color,
-                * Update views to use the new color. */
-               for (l = priv->boxes_views; l; l = l->next) {
-                       theme_manager_update_simple_tags (EMPATHY_THEME_BOXES (l->data));
-               }
-       }
-}
-
 static gboolean
 theme_manager_ensure_theme_exists (const gchar *name)
 {
@@ -512,12 +514,6 @@ empathy_theme_manager_init (EmpathyThemeManager *manager)
        theme_manager_notify_adium_path_cb (empathy_conf_get (),
                                            EMPATHY_PREFS_CHAT_ADIUM_PATH,
                                            manager);
-
-       /* Track GTK color changes */
-       priv->settings = gtk_settings_get_default ();
-       g_signal_connect_swapped (priv->settings, "notify::color-hash",
-                                 G_CALLBACK (theme_manager_color_hash_notify_cb),
-                                 manager);
 }
 
 EmpathyThemeManager *
index cf423de41db0c75c8c12c959bb152c423c3064b5..902bcb3e6174b01a4e805733a6b5120283e77934 100644 (file)
@@ -1311,8 +1311,8 @@ empathy_window_present (GtkWindow *window,
        }
 
        timestamp = gtk_get_current_event_time ();
-       gtk_window_set_skip_taskbar_hint (window, FALSE);
        gtk_window_present_with_time (window, timestamp);
+       gtk_window_set_skip_taskbar_hint (window, FALSE);
        /* FIXME: This shouldn't be required as gtk_window_present's doc says
         *        it deiconify automatically. */
        gtk_window_deiconify (window);
index 6575bb9982288dacbba51a346bd562d027484278..147fca0a997e75621ec602c7e9e5fa9f0991af55 100644 (file)
@@ -407,11 +407,11 @@ empathy_chatroom_get_name (EmpathyChatroom *chatroom)
        g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), NULL);
 
        priv = GET_PRIV (chatroom);
-       
+
        if (EMP_STR_EMPTY (priv->name)) {
                return priv->room;
        }
-       
+
        return priv->name;
 }
 
index f415ec19fe2ebc8298f05ac71dbe8e2aae32b4b4..073424485405fd9def60d86ac561910a46f48c36 100644 (file)
@@ -123,7 +123,7 @@ contact_manager_invalidated_cb (TpProxy *connection,
        list = g_hash_table_lookup (priv->lists, connection);
        if (list) {
                empathy_tp_contact_list_remove_all (list);
-               g_hash_table_remove (priv->lists, connection);          
+               g_hash_table_remove (priv->lists, connection);
        }
 }
 
@@ -499,7 +499,7 @@ contact_manager_remove_group (EmpathyContactList *manager,
                              const gchar *group)
 {
        EmpathyContactManagerPriv *priv = GET_PRIV (manager);
-       
+
        g_return_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager));
 
        g_hash_table_foreach (priv->lists,
@@ -529,7 +529,7 @@ empathy_contact_manager_can_add (EmpathyContactManager *manager,
 {
        EmpathyContactManagerPriv *priv = GET_PRIV (manager);
        EmpathyTpContactList      *list;
-       
+
        g_return_val_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager), FALSE);
 
        list = g_hash_table_lookup (priv->lists, connection);
index c723079204de442c1fdf9bf9b752befaad7a1a9d..3ed58de923acad94b0fb0335e823a16d65ab9f5c 100644 (file)
@@ -91,6 +91,10 @@ idle_presence_changed_cb (MissionControl *mc,
 
        priv = GET_PRIV (idle);
 
+       if (state == TP_CONNECTION_PRESENCE_TYPE_UNSET)
+               /* Assume our presence is offline if MC reports UNSET */
+               state = TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
+
        DEBUG ("Presence changed to '%s' (%d)", status, state);
 
        g_free (priv->status);
@@ -729,7 +733,7 @@ empathy_idle_set_use_nm (EmpathyIdle *idle,
                        g_clear_error (&error);
                        nm_status = NM_STATE_ASLEEP;
                }
-               
+
                idle_nm_state_change_cb (priv->nm_proxy, nm_status, idle);
        } else {
                priv->nm_connected = TRUE;
index 9f9a2030bccd4fa6c69e0d30c6fef036105a65dc..135212cc5a50e452fee3218f4f803dff98f7d633 100644 (file)
@@ -131,16 +131,17 @@ status_presets_file_parse (const gchar *filename)
 
                        if (state_str) {
                                state = empathy_presence_from_str (state_str);
-
-                               if (is_default) {
-                                       DEBUG ("Default status preset state is:"
-                                               " '%s', status:'%s'", state_str,
-                                               status);
-
-                                       status_presets_set_default (state, status);
-                               } else {
-                                       preset = status_preset_new (state, status);
-                                       presets = g_list_append (presets, preset);
+                               if (empathy_status_presets_is_valid (state)) {
+                                       if (is_default) {
+                                               DEBUG ("Default status preset state is:"
+                                                       " '%s', status:'%s'", state_str,
+                                                       status);
+
+                                               status_presets_set_default (state, status);
+                                       } else {
+                                               preset = status_preset_new (state, status);
+                                               presets = g_list_append (presets, preset);
+                                       }
                                }
                        }
 
@@ -405,3 +406,31 @@ empathy_status_presets_clear_default (void)
 
        status_presets_file_save ();
 }
+
+/**
+ * empathy_status_presets_is_valid:
+ * @state: a #TpConnectionPresenceType
+ *
+ * Check if a presence type can be used as a preset.
+ *
+ * Returns: %TRUE if the presence type can be used as a preset.
+ */
+gboolean
+empathy_status_presets_is_valid (TpConnectionPresenceType state)
+{
+       switch (state) {
+               case TP_CONNECTION_PRESENCE_TYPE_UNSET:
+               case TP_CONNECTION_PRESENCE_TYPE_OFFLINE:
+               case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN:
+               case TP_CONNECTION_PRESENCE_TYPE_ERROR:
+                       return FALSE;
+
+               case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE:
+               case TP_CONNECTION_PRESENCE_TYPE_AWAY:
+               case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
+               case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
+               case TP_CONNECTION_PRESENCE_TYPE_BUSY:
+                       return TRUE;
+       }
+       return FALSE;
+}
index 335dbcfcb2b18e9b1a0d014b5b6c1c18fdf0b42b..331c630d50c9b21fad0ee54bf2e2a87290b92d59 100644 (file)
@@ -40,6 +40,7 @@ const gchar * empathy_status_presets_get_default_status (void);
 void          empathy_status_presets_set_default        (TpConnectionPresenceType   state,
                                                         const gchar *status);
 void          empathy_status_presets_clear_default      (void);
+gboolean      empathy_status_presets_is_valid           (TpConnectionPresenceType   state);
 
 G_END_DECLS
 
index 5a934a5e3456a7a6ac340a651ef79b2eb220eadd..19397e7a9fc757180251dd1a5e6df935e444377c 100644 (file)
@@ -42,7 +42,7 @@ empathy_time_get_local_time (struct tm *tm)
 {
        const gchar *timezone;
        time_t       t;
-       
+
        timezone = g_getenv ("TZ");
        g_setenv ("TZ", "", TRUE);
 
index 794e3e3b76e5a5eddd7828f7d6edad2f1da5f380..ac61392e033268df517d89bfe62e96a1c3728145 100644 (file)
@@ -993,7 +993,7 @@ tp_chat_constructor (GType                  type,
 
                /* Get initial member contacts */
                members = tp_channel_group_get_members (priv->channel);
-               handles = tp_intset_to_array (members);         
+               handles = tp_intset_to_array (members);
                empathy_tp_contact_factory_get_from_handles (priv->factory,
                        handles->len, (TpHandle *) handles->data,
                        tp_chat_got_added_contacts_cb, NULL, NULL, chat);
index 58cb89cbef46558df5dae09f5dff070f126120db..cdb0431c4f05acf4f72a81b0b20810addd80a64e 100644 (file)
@@ -205,7 +205,7 @@ tp_contact_list_group_members_changed_cb (TpChannel     *channel,
                g_signal_emit_by_name (list, "groups-changed", contact,
                                       group_name,
                                       TRUE);
-       }       
+       }
 
        for (i = 0; i < removed->len; i++) {
                EmpathyContact *contact;
@@ -224,7 +224,7 @@ tp_contact_list_group_members_changed_cb (TpChannel     *channel,
                g_signal_emit_by_name (list, "groups-changed", contact,
                                       group_name,
                                       FALSE);
-       }       
+       }
 }
 
 static void
index 47746f536c00951abbc274fb82e8b6088773b713..fca7fcb5f326fb82eef94789a531f37566a10e69 100644 (file)
@@ -193,7 +193,7 @@ empathy_xml_node_get_child_content (xmlNodePtr   node,
        if (l) {
                return xmlNodeGetContent (l);
        }
-               
+
        return NULL;
 }
 
@@ -220,10 +220,10 @@ empathy_xml_node_find_child_prop_value (xmlNodePtr   node,
                if (prop && strcmp (prop, prop_value) == 0) {
                        found = l;
                }
-               
+
                xmlFree (prop);
        }
-               
+
        return found;
 }
 
index dc88cc7311cdedaf73041f4e0900b2d8fd9f2863..b147234054ca3667be33ee0f97000bccc765cc0a 100644 (file)
@@ -2,15 +2,16 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
-# Runa Bhattacharjee <runab@redhat.com>, 2008.
+# Runa Bhattacharjee <runab@redhat.com>, 2008, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: bn_IN\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-21 03:59+0000\n"
-"PO-Revision-Date: 2008-08-21 19:43+0530\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=empathy&component=general\n"
+"POT-Creation-Date: 2009-06-19 11:50+0000\n"
+"PO-Revision-Date: 2009-06-19 18:45+0530\n"
 "Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n"
-"Language-Team: Bengali INDIA <fedora-trans-bn_IN@redhat.com>\n"
+"Language-Team: Bengali INDIA <discuss@lists.ankur.org.in>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -40,8 +41,11 @@ msgid "Chat window theme"
 msgstr "আলাপন উইন্ডোর থিম"
 
 #: ../data/empathy.schemas.in.h:4
-msgid "Comma separated list of spell checker languages to use (e.g. en, fr, nl)."
-msgstr "বিভিন্ন ভাষার জন্য ব্যবহারযোগ্য বানান-পরীক্ষণ ব্যবস্থার তালিকা, কমা চিহ্ন দ্বারা বিভক্ত  (উদাহরণস্বরূপ, en, fr, nl)।"
+msgid ""
+"Comma separated list of spell checker languages to use (e.g. en, fr, nl)."
+msgstr ""
+"বিভিন্ন ভাষার জন্য ব্যবহারযোগ্য বানান-পরীক্ষণ ব্যবস্থার তালিকা, কমা চিহ্ন দ্বারা "
+"বিভক্ত  (উদাহরণস্বরূপ, en, fr, nl)।"
 
 #: ../data/empathy.schemas.in.h:5
 msgid "Compact contact list"
@@ -56,809 +60,1277 @@ msgid "Default directory to select an avatar image from"
 msgstr "ব্যবহারকারীর অবতার চিহ্নকারী ছবি নির্ধারণের জন্য ব্যবহৃত ডিফল্ট ডিরেক্টরি"
 
 #: ../data/empathy.schemas.in.h:8
-msgid "Empathy should auto-connect on startup"
-msgstr "à¦\86রমà§\8dভà¦\95ালà§\87 Empathy à¦¦à§\8dবারা à¦¸à§\8dবà§\9fà¦\82à¦\95à§\8dরিà§\9fরà§\82পà§\87 à¦¸à¦\82যà§\8bà¦\97 à¦¸à§\8dথাপন করা হবে"
+msgid "Disable popup notifications when away"
+msgstr "à¦\85নà§\81পসà§\8dথিত à¦¹à¦²à§\87 à¦ªà¦ª-à¦\86প à¦¸à§\82à¦\9aনাবারà§\8dতা à¦¨à¦¿à¦·à§\8dà¦\95à§\8dরিà§\9f করা হবে"
 
 #: ../data/empathy.schemas.in.h:9
-msgid "Empathy should use the avatar of the contact as the chat window icon"
-msgstr ""
+msgid "Disable sounds when away"
+msgstr "অনুপস্থিত হলে শব্দ নিষ্ক্রিয় করা হবে"
 
 #: ../data/empathy.schemas.in.h:10
-msgid "Enable popup when contact is available"
-msgstr "পরিচিত ব্যক্তি উপস্থিত হলে পপ-আপ সক্রিয় করা হবে"
+msgid "Empathy can publish the user's location"
+msgstr ""
 
 #: ../data/empathy.schemas.in.h:11
-msgid "Enable sound when away"
-msgstr "অনুপস্থিত হলে শব্দ সক্রিয় করা হবে"
+msgid "Empathy can use the GPS to guess the location"
+msgstr ""
 
 #: ../data/empathy.schemas.in.h:12
-msgid "Enable sound when busy"
-msgstr "ব্যস্ত অবস্থায় শব্দ সক্রিয় করা হবে"
+msgid "Empathy can use the cellular network to guess the location"
+msgstr ""
 
 #: ../data/empathy.schemas.in.h:13
+msgid "Empathy can use the network to guess the location"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:14
+msgid "Empathy default download folder"
+msgstr "Empathy-র ডিফল্ট ডাউনলোড ফোল্ডার"
+
+#: ../data/empathy.schemas.in.h:15
+msgid "Empathy has asked about importing accounts"
+msgstr "Empathy দ্বারা অ্যাকাউন্ট ইম্পোর্ট সম্পর্কে জিজ্ঞাসা করা হয়েছে"
+
+#: ../data/empathy.schemas.in.h:16
+msgid "Empathy should auto-connect on startup"
+msgstr "আরম্ভকালে Empathy দ্বারা স্বয়ংক্রিয়রূপে সংযোগ স্থাপন করা হবে"
+
+#: ../data/empathy.schemas.in.h:17
+#, fuzzy
+msgid "Empathy should reduce the location's accuracy"
+msgstr "আরম্ভকালে Empathy দ্বারা স্বয়ংক্রিয়রূপে সংযোগ স্থাপন করা হবে"
+
+#: ../data/empathy.schemas.in.h:18
+msgid "Empathy should use the avatar of the contact as the chat window icon"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:19
+msgid "Enable popup notifications for new messages"
+msgstr "নতুন বার্তার জন্য পপ-আপ সূচনাবার্তা সক্রিয় করা হবে"
+
+#: ../data/empathy.schemas.in.h:20
 msgid "Enable spell checker"
 msgstr "বানা পরীক্ষণ সক্রিয় করা হবে"
 
-#: ../data/empathy.schemas.in.h:14
+#: ../data/empathy.schemas.in.h:21
 msgid "Hide main window"
 msgstr "প্রধান উইন্ডো আড়াল করা হবে"
 
-#: ../data/empathy.schemas.in.h:15
+#: ../data/empathy.schemas.in.h:22
 msgid "Hide the main window."
 msgstr "প্রধান উইন্ডো আড়াল করা হবে।"
 
-#: ../data/empathy.schemas.in.h:16
+#: ../data/empathy.schemas.in.h:23
 msgid "NetworkManager should be used"
 msgstr "NetworkManager ব্যবহার করা হবে"
 
-#: ../data/empathy.schemas.in.h:17
+#: ../data/empathy.schemas.in.h:24
 msgid "Nick completed character"
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:18
+#: ../data/empathy.schemas.in.h:25
 msgid "Open new chats in separate windows"
 msgstr "নতুন আলাপন আরম্ভ হলে পৃথক উইন্ডোর মধ্যে প্রদর্শন করা হবে"
 
-#: ../data/empathy.schemas.in.h:19
+#: ../data/empathy.schemas.in.h:26
+msgid "Path of the adium theme to use"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:27
+#, fuzzy
+msgid "Path of the adium theme to use if the theme used for chat is adium."
+msgstr "চ্যাট-রুমের জন্য থিম ব্যবহার করা হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:28
+msgid "Play a sound for incoming messages"
+msgstr "নতুন বার্তা প্রাপ্ত হলে শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:29
+msgid "Play a sound for new conversations"
+msgstr "নতুন আলাপনের জন্য শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:30
+msgid "Play a sound for outgoing messages"
+msgstr "নতুন বার্তা পাঠানো হলে শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:31
+msgid "Play a sound when a contact logs in"
+msgstr "পরিচিত ব্যক্তি লগ-ইন করলে শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:32
+msgid "Play a sound when a contact logs out"
+msgstr "পরিচিত ব্যক্তি লগ-আউট করলে শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:33
+msgid "Play a sound when we log in"
+msgstr "নিজে লগ-ইন করলে শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:34
+msgid "Play a sound when we log out"
+msgstr "নিজে লগ-আউট করলে শব্দ বাজানো হবে"
+
+#: ../data/empathy.schemas.in.h:35
+msgid "Popup notifications if the chat isn't focused"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:36
 msgid "Salut account is created"
 msgstr "Salut অ্যাকাউন্ট নির্মিত হয়েছে"
 
-#: ../data/empathy.schemas.in.h:20
+#: ../data/empathy.schemas.in.h:37
 msgid "Show avatars"
 msgstr "অবতারের ছবি প্রদর্শন করা হবে"
 
-#: ../data/empathy.schemas.in.h:21
+#: ../data/empathy.schemas.in.h:38
+#, fuzzy
+msgid "Show contact list in rooms"
+msgstr "পরিচিত ব্যক্তিদের তালিকা প্রদর্শন করা হবে (_S)"
+
+#: ../data/empathy.schemas.in.h:39
 msgid "Show hint about closing the main window"
 msgstr "প্রধান উইন্ডো বন্ধ করার জন্য ইঙ্গিত প্রদর্শন করা হবে"
 
-#: ../data/empathy.schemas.in.h:22
+#: ../data/empathy.schemas.in.h:40
 msgid "Show offline contacts"
 msgstr "অফ-লাইন অবস্থায় থাকা পরিচিত ব্যক্তিদের তালিকা প্রদর্শন করা হবে"
 
-#: ../data/empathy.schemas.in.h:23
+#: ../data/empathy.schemas.in.h:41
 msgid "Spell checking languages"
 msgstr "ভাষার জন্য বানা পরীক্ষণ"
 
-#: ../data/empathy.schemas.in.h:24
+#: ../data/empathy.schemas.in.h:42
+msgid "The default folder to save file transfers in."
+msgstr "বিনিময় করা সামগ্রী সংরক্ষণের জন্য চিহ্নিত ফোল্ডার।"
+
+#: ../data/empathy.schemas.in.h:43
 msgid "The last directory that an avatar image was chosen from."
 msgstr "সর্বশেষ অবতারের জন্য ব্যবহৃথ ছবিটি যে ডিরেক্টরি থেকে নির্বাচন করা হয়েছে।"
 
-#: ../data/empathy.schemas.in.h:25
+#: ../data/empathy.schemas.in.h:44
 msgid "The theme that is used to display the conversation in chat windows."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:26
+#: ../data/empathy.schemas.in.h:45
 msgid "Use graphical smileys"
 msgstr "গ্রাফিক্যাল স্মাইলি ব্যবহার করুন"
 
-#: ../data/empathy.schemas.in.h:27
+#: ../data/empathy.schemas.in.h:46
 msgid "Use notification sounds"
 msgstr "সূচনামূলক শব্দ ব্যবহার করা হবে"
 
-#: ../data/empathy.schemas.in.h:28
+#: ../data/empathy.schemas.in.h:47
 msgid "Use theme for chat rooms"
+msgstr "চ্যাট-রুমের জন্য থিম প্রয়োগ করা হবে"
+
+#: ../data/empathy.schemas.in.h:48
+#, fuzzy
+msgid "Whether or not Empathy can publish the user's location to his contacts."
 msgstr ""
+"পরিচিতি তালিকায় উপস্থিত ব্যক্তিরা অফ-লাইন থাকলে, তালিকায় তাদের প্রদর্শন করা হবে "
+"কি না।"
 
-#: ../data/empathy.schemas.in.h:29
+#: ../data/empathy.schemas.in.h:49
+msgid "Whether or not Empathy can use the GPS to guess the location."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:50
+msgid ""
+"Whether or not Empathy can use the cellular network to guess the location."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:51
+#, fuzzy
+msgid "Whether or not Empathy can use the network to guess the location."
+msgstr "নতুন আলাপন সম্পর্কে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:52
+msgid ""
+"Whether or not Empathy has asked about importing accounts from other "
+"programs."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:53
 msgid ""
 "Whether or not Empathy should automatically log in to your accounts on "
 "startup."
 msgstr "Empathy প্রারম্ভকালে স্বয়ংক্রিয়রূপে সকল অ্যাকাউন্টে লগ-ইন করা হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:30
+#: ../data/empathy.schemas.in.h:54
+#, fuzzy
+msgid ""
+"Whether or not Empathy should reduce the location's accuracy for privacy "
+"reasons."
+msgstr "Empathy প্রারম্ভকালে স্বয়ংক্রিয়রূপে সকল অ্যাকাউন্টে লগ-ইন করা হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:55
 msgid ""
 "Whether or not Empathy should use the avatar of the contact as the chat "
 "window icon."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:31
-msgid "Whether or not the Salut account has been created on the first Empathy run."
+#: ../data/empathy.schemas.in.h:56
+msgid ""
+"Whether or not the Salut account has been created on the first Empathy run."
 msgstr "Empathy প্রথমবার সঞ্চালনের সময় Salut অ্যাকাউন্ট নির্মিত হয়েছে কি না।"
 
-#: ../data/empathy.schemas.in.h:32
+#: ../data/empathy.schemas.in.h:57
 msgid ""
 "Whether or not the network manager should be used to automatically "
 "disconnect/reconnect."
-msgstr "স্বয়ংক্রিয়রূপে সংযোগ স্থাপন/বিচ্ছিন্ন করার জন্য network manager প্রয়োগ করা হবে কি না।"
+msgstr ""
+"স্বয়ংক্রিয়রূপে সংযোগ স্থাপন/বিচ্ছিন্ন করার জন্য network manager প্রয়োগ করা হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:33
+#: ../data/empathy.schemas.in.h:58
 msgid ""
 "Whether or not to check words typed against the languages you want to check "
 "with."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:34
-msgid "Whether or not to convert smileys into graphical images in conversations."
+#: ../data/empathy.schemas.in.h:59
+msgid ""
+"Whether or not to convert smileys into graphical images in conversations."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:35
-msgid "Whether or not to play a sound when messages arrive."
-msgstr "বার্তা প্রাপ্ত হলে শব্দ বাজানো হবে কি না।"
+#: ../data/empathy.schemas.in.h:60
+msgid ""
+"Whether or not to play a sound to notify for contacts logging in the network."
+msgstr ""
+"পরিচিত ব্যক্তিরা নেটওয়ার্কে লগ-ইন করলে, সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:36
-msgid "Whether or not to play sounds when away."
-msgstr "অনুপস্থিত অবস্থায় শব্দ বাজানো হবে কি না।"
+#: ../data/empathy.schemas.in.h:61
+msgid ""
+"Whether or not to play a sound to notify for contacts logging off the "
+"network."
+msgstr ""
+"পরিচিত ব্যক্তিরা নেটওয়ার্কে লগ-অফ করলে, সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:37
-msgid "Whether or not to play sounds when busy."
-msgstr "বà§\8dযসà§\8dত à¦\85বসà§\8dথাà§\9f শব্দ বাজানো হবে কি না।"
+#: ../data/empathy.schemas.in.h:62
+msgid "Whether or not to play a sound to notify for events."
+msgstr "বিভিনà§\8dন à¦\98à¦\9fনা à¦¸à¦®à§\8dপরà§\8dà¦\95à§\87 à¦¸à§\82à¦\9aনাপà§\8dরদানà§\87র à¦\9cনà§\8dয শব্দ বাজানো হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:38
-msgid "Whether or not to show a popup when a contact becomes available."
+#: ../data/empathy.schemas.in.h:63
+msgid "Whether or not to play a sound to notify for incoming messages."
+msgstr "প্রাপ্ত বার্তা সম্পর্কে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:64
+msgid "Whether or not to play a sound to notify for new conversations."
+msgstr "নতুন আলাপন সম্পর্কে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:65
+msgid "Whether or not to play a sound to notify for outgoing messages."
+msgstr "প্রেরিত বার্তা সম্পর্কে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:66
+msgid "Whether or not to play a sound when logging in a network."
+msgstr "নেটওয়ার্কে লগ-ইন করলে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:67
+msgid "Whether or not to play a sound when logging off a network."
+msgstr "নেটওয়ার্কে লগ-অফ করলে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:68
+msgid "Whether or not to play sound notifications when away or busy."
+msgstr "অনুপস্থিত অথবা ব্যস্ত থাকলে সূচনাপ্রদানের জন্য শব্দ বাজানো হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:69
+msgid ""
+"Whether or not to show a popup notification when receiving a new message "
+"even if the chat is already opened, but not focused."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:39
+#: ../data/empathy.schemas.in.h:70
+msgid ""
+"Whether or not to show a popup notification when receiving a new message."
+msgstr "নতুন বার্তা প্রাপ্ত করা হলে পপ-আপের মাধ্যমে সূচনা প্রদান করা হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:71
 msgid ""
 "Whether or not to show avatars for contacts in the contact list and chat "
 "windows."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:40
+#: ../data/empathy.schemas.in.h:72
 msgid "Whether or not to show contacts that are offline in the contact list."
 msgstr ""
+"পরিচিতি তালিকায় উপস্থিত ব্যক্তিরা অফ-লাইন থাকলে, তালিকায় তাদের প্রদর্শন করা হবে "
+"কি না।"
 
-#: ../data/empathy.schemas.in.h:41
+#: ../data/empathy.schemas.in.h:73
+msgid "Whether or not to show popup notifications when away or busy."
+msgstr "অনুপস্থিত অথবা ব্যস্ত থাকলে পপ সূচনাবার্তা প্রদর্শন করা হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:74
+#, fuzzy
+msgid "Whether or not to show the contact list in chat rooms."
+msgstr "সংকুচিত মোডে, পরিচিতি তালিকা প্রদর্শন করা হবে কি না।"
+
+#: ../data/empathy.schemas.in.h:75
 msgid ""
 "Whether or not to show the message dialog about closing the main window with "
 "the 'x' button in the title bar."
 msgstr ""
 
-#: ../data/empathy.schemas.in.h:42
+#: ../data/empathy.schemas.in.h:76
 msgid "Whether to show the contact list in compact mode or not."
-msgstr ""
+msgstr "সংকুচিত মোডে, পরিচিতি তালিকা প্রদর্শন করা হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:43
+#: ../data/empathy.schemas.in.h:77
 msgid "Whether to use the theme for chat rooms or not."
-msgstr ""
+msgstr "চ্যাট-রুমের জন্য থিম ব্যবহার করা হবে কি না।"
 
-#: ../data/empathy.schemas.in.h:44
+#: ../data/empathy.schemas.in.h:78
 msgid ""
 "Which criterium to use when sorting the contact list. Default is to use sort "
 "by the contact's name with the value \"name\". A value of \"state\" will "
 "sort the contact list by state."
 msgstr ""
 
-#: ../libempathy/empathy-tp-contact-list.c:731 ../src/empathy.c:248
+#: ../libempathy/empathy-ft-handler.c:838
+msgid "The hash of the received file and the sent one do not match"
+msgstr ""
+
+#: ../libempathy/empathy-ft-handler.c:1098
+msgid "File transfer not supported by remote contact"
+msgstr ""
+
+#: ../libempathy/empathy-ft-handler.c:1156
+msgid "The selected file is not a regular file"
+msgstr ""
+
+#: ../libempathy/empathy-ft-handler.c:1165
+msgid "The selected file is empty"
+msgstr ""
+
+#: ../libempathy/empathy-tp-contact-list.c:757 ../src/empathy.c:287
 msgid "People nearby"
 msgstr "নিকটবর্তী ব্যক্তিরা"
 
-#: ../libempathy/empathy-utils.c:345
+#: ../libempathy/empathy-tp-file.c:279
+msgid "Socket type not supported"
+msgstr ""
+
+#: ../libempathy/empathy-tp-file.c:398
+msgid "No reason was specified"
+msgstr "কোনো কারণ উল্লিখিত হয়নি"
+
+#: ../libempathy/empathy-tp-file.c:401
+msgid "The change in state was requested"
+msgstr "অবস্থার পরিবর্তন অনুরোধ করা হয়েছে"
+
+#: ../libempathy/empathy-tp-file.c:404
+msgid "You canceled the file transfer"
+msgstr "ফাইল বিনিময়ের কাজ আপনি বাতিল করেছেন"
+
+#: ../libempathy/empathy-tp-file.c:407
+msgid "The other participant canceled the file transfer"
+msgstr "ফাইল বিনিময়ের কাজ অন্য ব্যবহারকারী বাতিল করেছেন"
+
+#: ../libempathy/empathy-tp-file.c:410
+msgid "Error while trying to transfer the file"
+msgstr "ফাইল বিনিময় করতে সমস্যা"
+
+#: ../libempathy/empathy-tp-file.c:413
+msgid "The other participant is unable to transfer the file"
+msgstr "অন্য ব্যবহারকারী ফাইল বিনিময় করতে সক্ষম হননি"
+
+#: ../libempathy/empathy-tp-file.c:416
+msgid "Unknown reason"
+msgstr "অজানা কারণ"
+
+#: ../libempathy/empathy-utils.c:274
 msgid "Available"
 msgstr "উপস্থিত"
 
-#: ../libempathy/empathy-utils.c:347
+#: ../libempathy/empathy-utils.c:276
 msgid "Busy"
 msgstr "ব্যস্ত"
 
-#: ../libempathy/empathy-utils.c:350
+#: ../libempathy/empathy-utils.c:279
 msgid "Away"
 msgstr "অনুপস্থিত"
 
-#: ../libempathy/empathy-utils.c:352
+#: ../libempathy/empathy-utils.c:281
 msgid "Hidden"
 msgstr "আড়ালে"
 
-#: ../libempathy/empathy-utils.c:355
+#: ../libempathy/empathy-utils.c:283
 msgid "Offline"
 msgstr "অফ-লাইন"
 
-#: ../libempathy-gtk/empathy-account-chooser.c:337
+#: ../libempathy/empathy-time.c:137
+#, c-format
+msgid "%d second ago"
+msgid_plural "%d seconds ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../libempathy/empathy-time.c:142
+#, c-format
+msgid "%d minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../libempathy/empathy-time.c:147
+#, c-format
+msgid "%d hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../libempathy/empathy-time.c:152
+#, c-format
+msgid "%d day ago"
+msgid_plural "%d days ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../libempathy/empathy-time.c:157
+#, c-format
+msgid "%d week ago"
+msgid_plural "%d weeks ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../libempathy/empathy-time.c:162
+#, c-format
+msgid "%d month ago"
+msgid_plural "%d months ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../libempathy/empathy-time.c:167
+msgid "in the future"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-account-chooser.c:419
 msgid "All"
 msgstr "সকল"
 
 #: ../libempathy-gtk/empathy-account-widget.c:302
-#: ../libempathy-gtk/empathy-account-widget.c:347
+#: ../libempathy-gtk/empathy-account-widget.c:354
 #, c-format
 msgid "%s:"
 msgstr "%s:"
 
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-generic.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-groupwise.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-msn.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:1
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:1
-msgid "<b>Advanced</b>"
+#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-generic.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:1
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:1
+#, fuzzy
+msgid "Advanced"
 msgstr "<b>উন্নত বিকল্প</b>"
 
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:2
-#: ../libempathy-gtk/empathy-account-widget-groupwise.glade.h:2
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:2
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:3
-#: ../libempathy-gtk/empathy-account-widget-msn.glade.h:2
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:4
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:2
-msgid "Forget password and clear the entry."
-msgstr ""
-
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:3
-#: ../libempathy-gtk/empathy-account-widget-groupwise.glade.h:4
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:4
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:5
-#: ../libempathy-gtk/empathy-account-widget-msn.glade.h:4
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:5
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:2
+#: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:3
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:3
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:3
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:2
 msgid "Pass_word:"
 msgstr "পাসওয়ার্ড: (_w)"
 
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:4
+#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:3
 msgid "Screen _Name:"
 msgstr "পর্দায় ব্যবহৃত নাম: (_N)"
 
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:5
-#: ../libempathy-gtk/empathy-account-widget-groupwise.glade.h:5
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:6
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:11
-#: ../libempathy-gtk/empathy-account-widget-msn.glade.h:5
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:5
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
+#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:7
 msgid "_Port:"
 msgstr "পোর্ট: (_P)"
 
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:6
-#: ../libempathy-gtk/empathy-account-widget-groupwise.glade.h:6
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:7
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:12
-#: ../libempathy-gtk/empathy-account-widget-msn.glade.h:6
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:10
-#: ../src/empathy-new-chatroom-dialog.glade.h:10
+#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:5
+#: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:5
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:6
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:11
+#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:5
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:9
+#: ../src/empathy-new-chatroom-dialog.ui.h:9
 msgid "_Server:"
 msgstr "সার্ভার: (_S)"
 
-#: ../libempathy-gtk/empathy-account-widget-groupwise.glade.h:3
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:4
-#: ../libempathy-gtk/empathy-account-widget-msn.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:2
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:2
+#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:2
 msgid "Login I_D:"
 msgstr "লগ-ইন ID: (_D)"
 
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:2
 msgid "ICQ _UIN:"
 msgstr "ICQ _UIN:"
 
-#: ../libempathy-gtk/empathy-account-widget-icq.glade.h:5
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:5
 msgid "_Charset:"
 msgstr "ক্যারসেট: (_C)"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.c:245
+#: ../libempathy-gtk/empathy-account-widget-irc.c:241
 msgid "New Network"
 msgstr "নতুন নেটওয়ার্ক"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:1
-msgid "<b>Network</b>"
-msgstr "<b>নেটওয়ার্ক</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:2
-msgid "<b>Servers</b>"
-msgstr "<b>সার্ভার</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1
 msgid "Charset:"
 msgstr "ক্যারসেট:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:4
-msgid "Create a new IRC network"
-msgstr "নতুন IRC নেটওয়ার্ক নির্মাণ করুন"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:5
-msgid "Edit the selected IRC network"
-msgstr "নির্বাচিত IRC নেটওয়ার্কের বৈশিষ্ট্য পরিবর্তন করুন"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
 msgid "Network"
 msgstr "নেটওয়ার্ক"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
 msgid "Network:"
 msgstr "নেটওয়ার্ক:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
 msgid "Nickname:"
 msgstr "উপনাম (Nickname):"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:9
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
 msgid "Password:"
 msgstr "পাসওয়ার্ড:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:10
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
 msgid "Quit message:"
 msgstr "প্রস্থানকালে প্রদর্শিত বার্তা:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:11
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
 msgid "Real name:"
 msgstr "নাম:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:12
-msgid "Remove the selected IRC network"
-msgstr "নির্বাচিত IRC নেটওয়ার্ক মুছে ফেলুন"
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8
+#, fuzzy
+msgid "Servers"
+msgstr "সার্ভার"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:2
-msgid "<b>Override server settings</b>"
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+#, fuzzy
+msgid "Override server settings"
 msgstr "<b>সার্ভারের বৈশিষ্ট্য উপেক্ষা করা হবে</b>"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:5
 msgid "Pri_ority:"
 msgstr "গুরুত্ব: (_o))"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:6
 msgid "Reso_urce:"
-msgstr ""
+msgstr "সামগ্রী: (_u)"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:7
 msgid "Use old SS_L"
 msgstr "পুরোনো SSL ব্যবহার করা হবে (_L)"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:9
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:8
 msgid "_Encryption required (TLS/SSL)"
 msgstr "এনক্রিপশন আবশ্যক (TLS/SSL) (_E)"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:10
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:9
 msgid "_Ignore SSL certificate errors"
 msgstr "SSL সার্টিফিকেট সংক্রান্ত সমস্যা উপেক্ষা করা হবে (_I)"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:2
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:2
 msgid "_Email:"
 msgstr "ই-মেইল: (_E)"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:3
-msgid "_First Name: "
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:3
+msgid "_First Name:"
 msgstr "নাম: (_F)"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:4
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:4
 msgid "_Jabber ID:"
 msgstr "_Jabber ID:"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:5
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:5
 msgid "_Last Name:"
 msgstr "পদবি: (_L)"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:6
-#: ../src/empathy-chatrooms-window.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:6
 msgid "_Nickname:"
 msgstr "উপনাম: (_N)"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:7
 msgid "_Published Name:"
 msgstr "প্রকাশিত নাম: (_P)"
 
 #. look up the DNS SRV record at the service's domain for the host name of a STUN server.
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:3
 msgid "Discover STUN"
-msgstr ""
+msgstr "STUN অনুসন্ধান করা হবে"
 
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:5
 msgid "STUN Server:"
 msgstr "STUN সার্ভার:"
 
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
 msgid "STUN port:"
 msgstr "STUN পোর্ট:"
 
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
 msgid "_Username:"
 msgstr "ব্যবহারকারীর নাম: (_U)"
 
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:4
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:3
 msgid "Use _Yahoo Japan"
 msgstr "Yahoo Japan ব্যবহার করা হবে (_Y)"
 
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:5
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:4
 msgid "Yahoo I_D:"
 msgstr "Yahoo I_D:"
 
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:6
 msgid "_Ignore conference and chatroom invitations"
-msgstr ""
+msgstr "বৈঠক ও চ্যাট-রুম থেকে প্রাপ্ত আমন্ত্রণগুলি উপেক্ষা করা হবে (_I)"
 
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:9
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:8
 msgid "_Room List locale:"
-msgstr ""
+msgstr "রুম তালিকার লোকেইল: (_R)"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:449
+#: ../libempathy-gtk/empathy-avatar-chooser.c:525
+msgid "Couldn't convert image"
+msgstr "ছবি রূপান্তর করতে ব্যর্থ"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:457
+#: ../libempathy-gtk/empathy-avatar-chooser.c:450
+msgid "None of the accepted image formats is supported on your system"
+msgstr "গ্রহণযোগ্য ছবির বিন্যাসগুলির মধ্যে একটিও আপনার সিস্টেম দ্বারা সমর্থিত হয় না"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:933
 msgid "Select Your Avatar Image"
-msgstr ""
+msgstr "নিজের অবতারের ছবি নির্বাচন করুন"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:460
+#: ../libempathy-gtk/empathy-avatar-chooser.c:936
 msgid "No Image"
 msgstr "ছবি ব্যবহৃত হবে না"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:520
+#: ../libempathy-gtk/empathy-avatar-chooser.c:998
 msgid "Images"
 msgstr "ছবি"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:524
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1002
 msgid "All Files"
 msgstr "সর্বধরনের ফাইল"
 
-#: ../libempathy-gtk/empathy-avatar-image.c:294
+#: ../libempathy-gtk/empathy-avatar-image.c:324
 msgid "Click to enlarge"
 msgstr "বড় মাপে প্রদর্শনের জন্য ক্লিক করুন"
 
-#: ../libempathy-gtk/empathy-chat.c:497
+#: ../libempathy-gtk/empathy-chat.c:186
+msgid "Failed to reconnect this chat"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-chat.c:404
+msgid "Unsupported command"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-chat.c:539
 msgid "offline"
 msgstr "অফ-লাইন"
 
-#: ../libempathy-gtk/empathy-chat.c:500
+#: ../libempathy-gtk/empathy-chat.c:542
 msgid "invalid contact"
 msgstr "পরিচিত ব্যক্তির তথ্য বৈধ নয়"
 
-#: ../libempathy-gtk/empathy-chat.c:503
+#: ../libempathy-gtk/empathy-chat.c:545
 msgid "permission denied"
 msgstr "অনুমতি প্রদান করা হয়নি"
 
-#: ../libempathy-gtk/empathy-chat.c:506
+#: ../libempathy-gtk/empathy-chat.c:548
 msgid "too long message"
 msgstr "বার্তা অত্যাধিক লম্বা"
 
-#: ../libempathy-gtk/empathy-chat.c:509
+#: ../libempathy-gtk/empathy-chat.c:551
 msgid "not implemented"
 msgstr "প্রয়োগ করা হয়নি"
 
-#: ../libempathy-gtk/empathy-chat.c:512
+#: ../libempathy-gtk/empathy-chat.c:554
 msgid "unknown"
 msgstr "অজানা"
 
-#: ../libempathy-gtk/empathy-chat.c:516
+#: ../libempathy-gtk/empathy-chat.c:558
 #, c-format
 msgid "Error sending message '%s': %s"
 msgstr "'%s' বার্তা পাঠাতে সমস্যা: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:546
+#: ../libempathy-gtk/empathy-chat.c:588
 #, c-format
 msgid "Topic set to: %s"
-msgstr ""
+msgstr "নির্ধারিত বিষয়: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:548
+#: ../libempathy-gtk/empathy-chat.c:590
 msgid "No topic defined"
+msgstr "বিষয় নির্ধারিত হয়নি"
+
+#: ../libempathy-gtk/empathy-chat.c:959
+msgid "(No Suggestions)"
 msgstr ""
 
-#: ../libempathy-gtk/empathy-chat.c:963
+#: ../libempathy-gtk/empathy-chat.c:1013
 msgid "Insert Smiley"
 msgstr "স্মাইলি চিহ্ন অন্তর্ভুক্ত করুন"
 
-#: ../libempathy-gtk/empathy-chat.c:979
+#. send button
+#: ../libempathy-gtk/empathy-chat.c:1031
+#: ../libempathy-gtk/empathy-ui-utils.c:1476
 msgid "_Send"
 msgstr "পাঠিয়ে দিন (_S)"
 
-#: ../libempathy-gtk/empathy-chat.c:1013
-msgid "_Check Word Spelling..."
-msgstr "শব্দের বানান পরীক্ষা করুন...(_C)"
+#: ../libempathy-gtk/empathy-chat.c:1065
+msgid "_Spelling Suggestions"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-chat.c:1119
+#: ../libempathy-gtk/empathy-chat.c:1179
 #, c-format
 msgid "%s has joined the room"
-msgstr ""
+msgstr "%s রুমে এসেছেন"
 
-#: ../libempathy-gtk/empathy-chat.c:1122
+#: ../libempathy-gtk/empathy-chat.c:1182
 #, c-format
 msgid "%s has left the room"
-msgstr ""
+msgstr "%s রুম থেকে চলে গেছেন"
 
-#: ../libempathy-gtk/empathy-chat.c:1236 ../src/empathy-call-window.c:406
+#: ../libempathy-gtk/empathy-chat.c:1313 ../src/empathy-call-window.c:1199
 msgid "Disconnected"
 msgstr "বিচ্ছিন্ন"
 
-#: ../libempathy-gtk/empathy-chat.c:1608
+#: ../libempathy-gtk/empathy-chat.c:1742
 msgid "Connected"
 msgstr "সংযুক্ত"
 
-#: ../libempathy-gtk/empathy-chat.glade.h:1
-msgid "<b>Topic:</b>"
-msgstr "<b>বিষয়:</b>"
+#: ../libempathy-gtk/empathy-chat.c:1792
+#: ../libempathy-gtk/empathy-log-window.c:501
+msgid "Conversation"
+msgstr "আলাপন"
 
-#: ../libempathy-gtk/empathy-chat.glade.h:2
-msgid "Group Chat"
-msgstr ""
+#: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:471
+msgid "Topic:"
+msgstr "বিষয়:"
 
-#: ../libempathy-gtk/empathy-chat-view.c:430
+#: ../libempathy-gtk/empathy-chat-text-view.c:316
 msgid "_Copy Link Address"
 msgstr "লিঙ্ক দ্বারা চিহ্নিত ঠিকানা কপি করুন (_C)"
 
-#: ../libempathy-gtk/empathy-chat-view.c:438
+#: ../libempathy-gtk/empathy-chat-text-view.c:323
 msgid "_Open Link"
 msgstr "লিঙ্ক দ্বারা চিহ্নিত খুলুন (_O)"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:180
-msgid "Personal Information"
-msgstr "ব্যক্তিগত তথ্য"
+#. Translators: timestamp displayed between conversations in
+#. * chat windows (strftime format string)
+#: ../libempathy-gtk/empathy-chat-text-view.c:415
+msgid "%A %B %d %Y"
+msgstr "%A %B %d %Y"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:183
+#: ../libempathy-gtk/empathy-contact-dialogs.c:179
+#: ../libempathy-gtk/empathy-contact-dialogs.c:238
 msgid "Edit Contact Information"
 msgstr "যোগাযোগ সংক্রান্ত তথ্য পরিবর্তন করুন"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:186
-msgid "Contact Information"
-msgstr "যোগাযোগ সংক্রান্ত তথ্য"
-
-#: ../libempathy-gtk/empathy-contact-dialogs.c:283
-msgid "I would like to add you to my contact list."
-msgstr "আমি আপনাকের আমার পরিচিতি তালিকায় যোগ করতে ইচ্ছুক।"
+#: ../libempathy-gtk/empathy-contact-dialogs.c:289
+msgid "Personal Information"
+msgstr "ব্যক্তিগত তথ্য"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:307
+#: ../libempathy-gtk/empathy-contact-dialogs.c:392
 msgid "New Contact"
 msgstr "নতুন পরিচিতি"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:1
+#: ../libempathy-gtk/empathy-contact-dialogs.ui.h:1
 msgid "Decide _Later"
 msgstr "পরে নির্ধারণ করা হবে (_L)"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:2
+#: ../libempathy-gtk/empathy-contact-dialogs.ui.h:2
 msgid "Subscription Request"
-msgstr ""
+msgstr "সাবস্ক্রিপশনের অনুরোধ"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1226
+#: ../libempathy-gtk/empathy-contact-list-view.c:1378
 #, c-format
 msgid "Do you really want to remove the group '%s'?"
 msgstr "'%s' নাম দল কি নিশ্চিতরূপে মুছে ফেলতে ইচ্ছুক?"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1228
+#: ../libempathy-gtk/empathy-contact-list-view.c:1380
 msgid "Removing group"
 msgstr "দল মুছে ফেলা হচ্ছে"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1275
-#: ../libempathy-gtk/empathy-contact-list-view.c:1354
+#: ../libempathy-gtk/empathy-contact-list-view.c:1427
+#: ../libempathy-gtk/empathy-contact-list-view.c:1505
 msgid "_Remove"
 msgstr "মুছে ফেলুন (_R)"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1305
+#: ../libempathy-gtk/empathy-contact-list-view.c:1457
 #, c-format
 msgid "Do you really want to remove the contact '%s'?"
-msgstr ""
+msgstr "আপনি কি নিশ্চিতরূপে '%s'-কে পরিচিত তালিকা থেকে সরিয়ে ফেলতে ইচ্ছুক?"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1307
+#: ../libempathy-gtk/empathy-contact-list-view.c:1459
 msgid "Removing contact"
-msgstr ""
-
-#: ../libempathy-gtk/empathy-contact-list-view.c:1312
-msgid "Sorry, I don't want you in my contact list anymore."
-msgstr ""
+msgstr "পরিচিত ব্যক্তিকে সরিয়ে ফেলা হচ্ছে"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:109
-#: ../src/empathy-main-window.glade.h:9
+#: ../libempathy-gtk/empathy-contact-menu.c:135
+#: ../src/empathy-main-window.ui.h:8
 msgid "_Chat"
 msgstr "আলাপন (_C)"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:130
-msgid "_Call"
-msgstr ""
+#: ../libempathy-gtk/empathy-contact-menu.c:166
+#, fuzzy
+msgctxt "menu item"
+msgid "_Audio Call"
+msgstr "ডেকে নিন (_C)"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:169
-#: ../src/empathy-main-window.glade.h:17
+#: ../libempathy-gtk/empathy-contact-menu.c:198
+#, fuzzy
+msgctxt "menu item"
+msgid "_Video Call"
+msgstr "ডেকে নিন (_C)"
+
+#: ../libempathy-gtk/empathy-contact-menu.c:237
 msgid "_View Previous Conversations"
 msgstr "পূর্ববর্তী আলাপ প্রদর্শন করা হবে (_V)"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:197
+#: ../libempathy-gtk/empathy-contact-menu.c:259
+msgid "Send file"
+msgstr "ফাইল পাঠান"
+
+#: ../libempathy-gtk/empathy-contact-menu.c:287
 msgid "Infor_mation"
 msgstr "তথ্য (_m)"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:224
-#: ../src/empathy-chat-window.glade.h:14 ../src/empathy-main-window.glade.h:11
+#: ../libempathy-gtk/empathy-contact-menu.c:314
+#: ../src/empathy-main-window.ui.h:11
 msgid "_Edit"
 msgstr "সম্পাদনা (_E)"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:358
+#: ../libempathy-gtk/empathy-contact-menu.c:372
+msgid "Inviting to this room"
+msgstr "এই রুমে আমন্ত্রণ করুন"
+
+#: ../libempathy-gtk/empathy-contact-menu.c:403
+msgid "_Invite to chatroom"
+msgstr "চ্যাট-রুমে আমন্ত্রণ করুন (_I)"
+
+#: ../libempathy-gtk/empathy-contact-selector.c:129
+msgid "Select a contact"
+msgstr "একটি পরিচিতি নির্বাচন করুন"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:440
 msgid "Save Avatar"
 msgstr "অবতারের ছবি সংরক্ষণ করুন"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:414
+#: ../libempathy-gtk/empathy-contact-widget.c:496
 msgid "Unable to save avatar"
 msgstr "অবতারের ছবি সংরক্ষণ করতে ব্যর্থ"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:875
+#: ../libempathy-gtk/empathy-contact-widget.c:979
 msgid "Select"
 msgstr "নির্বাচন করুন"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:884
-#: ../src/empathy-main-window.c:853
+#: ../libempathy-gtk/empathy-contact-widget.c:988
+#: ../src/empathy-main-window.c:905
 msgid "Group"
 msgstr "দল"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:1
-msgid "<b>Client Information</b>"
-msgstr "<b>ক্লায়েন্ট সংক্রান্ত তথ্য</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1239
+msgid "Country ISO Code:"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:2
-msgid "<b>Contact Details</b>"
-msgstr "<b>যোগাযোগ সংক্রান্ত বিবরণ</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1241
+#, fuzzy
+msgid "Country:"
+msgstr "অ্যাকাউন্ট:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:3
-msgid "<b>Contact</b>"
-msgstr "<b>যোগাযোগ</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1243
+#, fuzzy
+msgid "State:"
+msgstr "অবস্থা:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:4
-msgid "<b>Groups</b>"
-msgstr "<b>দল</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1245
+#, fuzzy
+msgid "City:"
+msgstr "ক্লায়েন্ট:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:5
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:1
-#: ../src/empathy-chatrooms-window.glade.h:1
-#: ../src/empathy-new-chatroom-dialog.glade.h:1
-msgid "Account:"
-msgstr "অ্যাকাউন্ট:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1247
+#, fuzzy
+msgid "Area:"
+msgstr "আর্মেনিয়ান"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:6
-msgid "Alias:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1249
+msgid "Postal Code:"
 msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:7
-msgid "Birthday:"
-msgstr "জন্মদিন:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1251
+#, fuzzy
+msgid "Street:"
+msgstr "নির্বাচন করুন"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:8
-msgid "Client:"
-msgstr "ক্লায়েন্ট:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1253
+msgid "Building:"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:9
-msgid "Contact information"
-msgstr "যোগাযোগ সংক্রান্ত তথ্য"
+#: ../libempathy-gtk/empathy-contact-widget.c:1255
+#, fuzzy
+msgid "Floor:"
+msgstr "উদ্দিষ্ট বস্তু: (_F)"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:10
-msgid "Email:"
-msgstr "ই-মেইল:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1257
+#, fuzzy
+msgid "Room:"
+msgstr "রুম: (_R)"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:11
-msgid "Fullname:"
-msgstr "সম্পূর্ণ নাম:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1259
+#, fuzzy
+msgid "Text:"
+msgstr "প্রকৃতি:"
 
-#. Identifier to connect to Instant Messaging network
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:13
-msgid "Identifier:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1261
+#, fuzzy
+msgid "Description:"
+msgstr "সংস্করণ:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1263
+msgid "URI:"
 msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:14
-msgid "Information requested..."
-msgstr "অনুরোধ করা তথ্য..."
+#: ../libempathy-gtk/empathy-contact-widget.c:1265
+msgid "Accuracy Level:"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:15
-msgid "OS:"
-msgstr "OS:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1267
+msgid "Error:"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:16
-msgid ""
-"Select the groups you want this contact to appear in.  Note that you can "
-"select more than one group or no groups."
+#: ../libempathy-gtk/empathy-contact-widget.c:1269
+msgid "Vertical Error (meters):"
 msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:17
-msgid "Version:"
-msgstr "সংস্করণ:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1271
+msgid "Horizontal Error (meters):"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:18
-msgid "Web site:"
-msgstr "ওয়েব-সাইট:"
+#: ../libempathy-gtk/empathy-contact-widget.c:1273
+msgid "Speed:"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:19
-msgid "_Add Group"
-msgstr "দল যোগ করুন (_A)"
+#: ../libempathy-gtk/empathy-contact-widget.c:1275
+#, fuzzy
+msgid "Bearing:"
+msgstr "সংস্করণ:"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:284
-msgid "new server"
+#: ../libempathy-gtk/empathy-contact-widget.c:1277
+msgid "Climb Speed:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1279
+msgid "Last Updated on:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1281
+msgid "Longitude:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1283
+msgid "Latitude:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1285
+msgid "Altitude:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1332
+#, fuzzy
+msgid "<b>Location</b>"
+msgstr "<b>যোগাযোগ</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1345
+#, fuzzy
+msgid "<b>Location</b>, "
+msgstr "<b>যোগাযোগ</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1395
+msgid "%B %e, %Y at %R UTC"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:1
+msgid "<b>Location</b> at (date)\t"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:1
+#: ../src/empathy-chatrooms-window.ui.h:1
+#: ../src/empathy-new-chatroom-dialog.ui.h:1
+msgid "Account:"
+msgstr "অ্যাকাউন্ট:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
+msgid "Alias:"
+msgstr "উপনাম:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:4
+msgid "Birthday:"
+msgstr "জন্মদিন:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:5
+#, fuzzy
+msgid "Client Information"
+msgstr "<b>ক্লায়েন্ট সংক্রান্ত তথ্য</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:6
+msgid "Client:"
+msgstr "ক্লায়েন্ট:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:7
+#: ../src/empathy-main-window.c:888
+msgid "Contact"
+msgstr "পরিচিত ব্যক্তি"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
+#, fuzzy
+msgid "Contact Details"
+msgstr "<b>যোগাযোগ সংক্রান্ত বিবরণ</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:9
+msgid "Email:"
+msgstr "ই-মেইল:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:10
+msgid "Fullname:"
+msgstr "সম্পূর্ণ নাম:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:11
+#, fuzzy
+msgid "Groups"
+msgstr "দল"
+
+#. Identifier to connect to Instant Messaging network
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:13
+msgid "Identifier:"
+msgstr "সনাক্তচিহ্ন:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:14
+msgid "Information requested..."
+msgstr "অনুরোধ করা তথ্য..."
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:15
+msgid "OS:"
+msgstr "OS:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:16
+msgid ""
+"Select the groups you want this contact to appear in.  Note that you can "
+"select more than one group or no groups."
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:17
+msgid "Version:"
+msgstr "সংস্করণ:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:18
+msgid "Web site:"
+msgstr "ওয়েব-সাইট:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:19
+msgid "_Add Group"
+msgstr "দল যোগ করুন (_A)"
+
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:283
+msgid "new server"
 msgstr "নতুন সার্ভার"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:513
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:510
 msgid "Server"
 msgstr "সার্ভার"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:528
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:525
 msgid "Port"
 msgstr "পোর্ট"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:541
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:538
 msgid "SSL"
 msgstr "SSL"
 
-#: ../libempathy-gtk/empathy-log-window.c:497
+#: ../libempathy-gtk/empathy-log-window.c:494
+#: ../src/empathy-import-dialog.c:281
 msgid "Account"
 msgstr "অ্যাকাউন্ট"
 
-#: ../libempathy-gtk/empathy-log-window.c:504 ../src/empathy-chat-window.c:276
-msgid "Conversation"
-msgstr ""
-
-#: ../libempathy-gtk/empathy-log-window.c:514
+#: ../libempathy-gtk/empathy-log-window.c:511
 msgid "Date"
 msgstr "তারিখ"
 
-#. Tab Label
-#: ../libempathy-gtk/empathy-log-window.glade.h:2
+#: ../libempathy-gtk/empathy-log-window.ui.h:1
 msgid "Conversations"
-msgstr ""
+msgstr "আলাপন"
 
-#: ../libempathy-gtk/empathy-log-window.glade.h:3
+#: ../libempathy-gtk/empathy-log-window.ui.h:2
 msgid "Previous Conversations"
-msgstr ""
+msgstr "পূর্ববর্তী আলাপন"
 
-#. Tab Label
-#: ../libempathy-gtk/empathy-log-window.glade.h:5
+#: ../libempathy-gtk/empathy-log-window.ui.h:3
 msgid "Search"
 msgstr "অনুসন্ধান"
 
-#. Searching *for* something
-#: ../libempathy-gtk/empathy-log-window.glade.h:7
+#: ../libempathy-gtk/empathy-log-window.ui.h:4
 msgid "_For:"
-msgstr ""
+msgstr "উদ্দিষ্ট বস্তু: (_F)"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:2
-msgid "Call"
-msgstr ""
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:2
+msgid "C_all"
+msgstr "ডাকুন (_a)"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:3
-#: ../src/empathy-chat-window.glade.h:2
-msgid "Chat"
-msgstr "আলাপন"
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:3
+msgid "C_hat"
+msgstr "আলাপন (_h)"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:4
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:4
 msgid "Contact ID:"
-msgstr ""
+msgstr "পরিচিতির ID:"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:5
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:5
 msgid "New Conversation"
+msgstr "নতুন আলাপন"
+
+#. COL_STATE_ICON_NAME
+#. COL_STATE
+#. COL_STATUS_TEXT
+#. COL_DISPLAY_MARKUP
+#. COL_STATUS_CUSTOMISABLE
+#. COL_TYPE
+#: ../libempathy-gtk/empathy-presence-chooser.c:172
+#, fuzzy
+msgid "Custom Message..."
+msgstr "স্বনির্ধারিত বার্তা..."
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:227
+#, fuzzy
+msgid "Edit Custom Messages..."
+msgstr "স্বনির্ধারিত বার্তা..."
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:326
+msgid "Click to remove this status as a favorite"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:335
+msgid "Click to make this status a favorite"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:369
+#, fuzzy
+msgid "Set status"
+msgstr "অবস্থা"
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:782
+msgid "Set your presence and current status"
 msgstr ""
 
 #. Custom messages
-#: ../libempathy-gtk/empathy-presence-chooser.c:685
+#: ../libempathy-gtk/empathy-presence-chooser.c:1017
 msgid "Custom messages..."
 msgstr "স্বনির্ধারিত বার্তা..."
 
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:1
-msgid "Custom message"
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:362
+#, fuzzy
+msgid "Enter Custom Message"
 msgstr "স্বনির্ধারিত বার্তা"
 
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:2
-msgid "Message:"
-msgstr "বার্তা:"
-
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:3
-msgid "Save message"
-msgstr "বার্তা সংরক্ষণ করুন"
-
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:4
-msgid "Status:"
-msgstr "অবস্থা:"
-
-#: ../libempathy-gtk/empathy-spell-dialog.c:88
-msgid "Word"
-msgstr "শব্দ"
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:521
+#, fuzzy
+msgid "Edit Custom Messages"
+msgstr "স্বনির্ধারিত বার্তা"
 
-#: ../libempathy-gtk/empathy-spell-dialog.c:265
-msgid "Suggestions for the word"
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:1
+msgid "Add _New Preset"
 msgstr ""
 
-#: ../libempathy-gtk/empathy-spell-dialog.glade.h:1
-msgid "Spell Checker"
-msgstr "বানান পরীক্ষণ ব্যবস্থা"
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:2
+#, fuzzy
+msgid "Saved Presets"
+msgstr "বার্তা সংরক্ষণ করুন"
 
-#: ../libempathy-gtk/empathy-spell-dialog.glade.h:2
-msgid "Suggestions for the word:"
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:3
+msgid "gtk-add"
 msgstr ""
 
-#: ../libempathy-gtk/empathy-theme-boxes.c:745
-#: ../libempathy-gtk/empathy-theme-irc.c:293
-msgid "%A %d %B %Y"
-msgstr "%A %d %B %Y"
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:4
+msgid "gtk-remove"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-theme-manager.c:73
+#: ../libempathy-gtk/empathy-theme-manager.c:66
 msgid "Classic"
 msgstr "পারম্পরিক"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:74
+#: ../libempathy-gtk/empathy-theme-manager.c:67
 msgid "Simple"
 msgstr "সাধারণ"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:75
+#: ../libempathy-gtk/empathy-theme-manager.c:68
 msgid "Clean"
 msgstr "পরিশ্রুত"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:76
+#: ../libempathy-gtk/empathy-theme-manager.c:69
 msgid "Blue"
 msgstr "নীল"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1330
+#: ../libempathy-gtk/empathy-theme-manager.c:71
+msgid "Adium"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1378
 msgid "Unable to open URI"
 msgstr "URI খুলতে ব্যর্থ"
 
+#: ../libempathy-gtk/empathy-ui-utils.c:1468
+msgid "Select a file"
+msgstr "একটি ফাইল নির্বাচন করুন"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1526
+#, fuzzy
+msgid "Select a destination"
+msgstr "একটি পরিচিতি নির্বাচন করুন"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1555
+msgid "Received an instant message"
+msgstr "ইনস্ট্যান্ট বার্তা প্রাপ্ত হয়েছে"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1557
+msgid "Sent an instant message"
+msgstr "ইনস্ট্যান্ট বার্তা পাঠানো হয়েছে"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1559
+msgid "Incoming chat request"
+msgstr "চ্যাটের আগত অনুরোধ"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1561
+msgid "Contact connected"
+msgstr "পরিচিতির সাথে সংযোগ করা হয়েছে"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1563
+msgid "Contact disconnected"
+msgstr "পরিচিতির সাথে সংযোগ বিচ্ছিন্ন করা হয়েছে"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1565
+msgid "Connected to server"
+msgstr "সার্ভারের সাথে সংযুক্ত"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1567
+msgid "Disconnected from server"
+msgstr "সার্ভারে সাথে সংযোগ বিচ্ছিন্ন"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1569
+msgid "Incoming voice call"
+msgstr "আগত ভাষ্যের কল"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1571
+msgid "Outgoing voice call"
+msgstr "বাহিরগামি ভাষ্যের কল"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1573
+msgid "Voice call ended"
+msgstr "ভাষ্যের কল সমাপ্ত হয়েছে"
+
 #: ../libempathy-gtk/totem-subtitle-encoding.c:158
 msgid "Current Locale"
 msgstr "বর্তমান লোকেইল"
@@ -1030,19 +1502,21 @@ msgstr "ভিয়েতনামিস"
 #. * vim: sw=2 ts=8 cindent noai bs=2
 #.
 #: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:1
-msgid "The contact to display in the applet. Empty means no contact is displayed."
+msgid ""
+"The contact to display in the applet. Empty means no contact is displayed."
 msgstr ""
+"অ্যাপ্লেটের মধ্যে প্রদর্শনযোগ্য পরিচিতি। ফাঁকা হলে কোনো পরিচিতি প্রদর্শন করা হবে না।"
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:2
 msgid "The contact's avatar token. Empty means contact has no avatar."
-msgstr ""
+msgstr "পরিচিতির অবতারের টোকেন। পরিচিতির অবতার না থাকলে ফাঁকা থাকবে।"
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.server.in.in.h:1
 msgid "Megaphone"
 msgstr "মেগাফোন"
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.server.in.in.h:2
-#: ../megaphone/src/megaphone-applet.c:417
+#: ../megaphone/src/megaphone-applet.c:527
 msgid "Talk!"
 msgstr "Talk!"
 
@@ -1056,10 +1530,18 @@ msgid "_Information"
 msgstr "তথ্য (_I)"
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.xml.h:3
-#: ../src/empathy-main-window.glade.h:15
+#: ../src/empathy-main-window.ui.h:18
 msgid "_Preferences"
 msgstr "পছন্দ (_P)"
 
+#: ../megaphone/src/megaphone-applet.c:168
+msgid "Please configure a contact."
+msgstr "অনুগ্রহ করে পরিচিতির তথ্য কনফিগার করুন।"
+
+#: ../megaphone/src/megaphone-applet.c:258
+msgid "Select contact..."
+msgstr "পরিচিত ব্যক্তি নির্বাচ করুন..."
+
 #: ../nothere/data/GNOME_NotHere_Applet.server.in.in.h:1
 msgid "Presence"
 msgstr "উপস্থিতি"
@@ -1069,23 +1551,23 @@ msgstr "উপস্থিতি"
 msgid "Set your own presence"
 msgstr "নিজের উপস্থিতি সংক্রান্ত তথ্য নির্ধারণ করুন"
 
-#: ../src/empathy.c:380
+#: ../src/empathy.c:478
 msgid "Don't connect on startup"
 msgstr "প্রারম্ভে সংযোগ স্থাপন করা হবে না"
 
-#: ../src/empathy.c:384
+#: ../src/empathy.c:482
 msgid "Don't show the contact list on startup"
 msgstr "প্রারম্ভকালে পরিচিত ব্যক্তিদের তালিকা প্রদর্শন করা হবে না"
 
-#: ../src/empathy.c:388
+#: ../src/empathy.c:486
 msgid "Show the accounts dialog"
 msgstr "অ্যাকাউন্ট সংক্রান্ত ডায়লগ প্রদর্শন করা হবে"
 
-#: ../src/empathy.c:400
+#: ../src/empathy.c:498
 msgid "- Empathy Instant Messenger"
 msgstr "- Empathy Instant Messenger"
 
-#: ../src/empathy-about-dialog.c:84
+#: ../src/empathy-about-dialog.c:83
 msgid ""
 "Empathy is free software; you can redistribute it and/or modify it under the "
 "terms of the GNU General Public License as published by the Free Software "
@@ -1097,7 +1579,7 @@ msgstr ""
 "Foundation; either version 2 of the License, or (at your option) any later "
 "version."
 
-#: ../src/empathy-about-dialog.c:88
+#: ../src/empathy-about-dialog.c:87
 msgid ""
 "Empathy is distributed in the hope that it will be useful, but WITHOUT ANY "
 "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS "
@@ -1109,7 +1591,7 @@ msgstr ""
 "FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more "
 "details."
 
-#: ../src/empathy-about-dialog.c:92
+#: ../src/empathy-about-dialog.c:91
 msgid ""
 "You should have received a copy of the GNU General Public License along with "
 "Empathy; if not, write to the Free Software Foundation, Inc., 51 Franklin "
@@ -1119,30 +1601,29 @@ msgstr ""
 "Empathy; if not, write to the Free Software Foundation, Inc., 51 Franklin "
 "Street, Fifth Floor, Boston, MA 02110-130159 USA"
 
-#: ../src/empathy-about-dialog.c:120
+#: ../src/empathy-about-dialog.c:119
 msgid "An Instant Messaging client for GNOME"
-msgstr ""
+msgstr "GNOME-র সাথে ব্যবহারযোগ্য ইনস্ট্যান্ট মেসেজিং ক্লায়েন্ট"
 
-#: ../src/empathy-about-dialog.c:126
+#: ../src/empathy-about-dialog.c:125
 msgid "translator-credits"
 msgstr "রুণা ভট্টাচার্য্য (runab@redhat.com)"
 
-#: ../src/empathy-accounts-dialog.c:389
+#: ../src/empathy-accounts-dialog.c:393
 msgid "Enabled"
 msgstr "সক্রিয়"
 
-#: ../src/empathy-accounts-dialog.c:399
-#: ../src/empathy-accounts-dialog.glade.h:4
+#: ../src/empathy-accounts-dialog.c:403 ../src/empathy-accounts-dialog.ui.h:1
 msgid "Accounts"
 msgstr "অ্যাকাউন্ট"
 
 #. To translator: %s is the protocol name
-#: ../src/empathy-accounts-dialog.c:862
+#: ../src/empathy-accounts-dialog.c:837
 #, c-format
 msgid "New %s account"
 msgstr "নতুন %s অ্যাকাউন্ট"
 
-#: ../src/empathy-accounts-dialog.c:972
+#: ../src/empathy-accounts-dialog.c:950
 #, c-format
 msgid ""
 "You are about to remove your %s account!\n"
@@ -1151,7 +1632,7 @@ msgstr ""
 "আপনি %s অ্যাকাউন্টটি মুছে ফেলতে চলেছেন!\n"
 "আপনি কি নিশ্চিতরূপে এগিয়ে যেতে ইচ্ছুক?"
 
-#: ../src/empathy-accounts-dialog.c:978
+#: ../src/empathy-accounts-dialog.c:956
 msgid ""
 "Any associated conversations and chat rooms will NOT be removed if you "
 "decide to proceed.\n"
@@ -1160,589 +1641,1055 @@ msgid ""
 "be available."
 msgstr ""
 
-#: ../src/empathy-accounts-dialog.glade.h:1
-msgid "<b>New Account</b>"
-msgstr "<b>নতুন অ্যাকাউন্ট</b>"
-
-#: ../src/empathy-accounts-dialog.glade.h:2
-msgid "<b>No protocol installed</b>"
-msgstr "<b>কোনো প্রোটোকল ইনস্টল করা হয়নি</b>"
-
-#: ../src/empathy-accounts-dialog.glade.h:3
-msgid "<b>Settings</b>"
-msgstr "<b>বিবিধ বৈশিষ্ট্য</b>"
+#: ../src/empathy-accounts-dialog.ui.h:2
+#, fuzzy
+msgid "Add Account"
+msgstr "অ্যাকাউন্ট"
 
-#: ../src/empathy-accounts-dialog.glade.h:5
+#: ../src/empathy-accounts-dialog.ui.h:3
 msgid "Cr_eate"
 msgstr "নির্মাণ করুন (_e)"
 
-#: ../src/empathy-accounts-dialog.glade.h:6
-msgid "I already have an account I want to use"
-msgstr "ব্যবহারযোগ্য আমার একটি অ্যাকাউন্ট বর্তমান উপস্থিত রয়েছে"
+#: ../src/empathy-accounts-dialog.ui.h:4
+#, fuzzy
+msgid "Gmail"
+msgstr "ই-মেইল:"
+
+#: ../src/empathy-accounts-dialog.ui.h:5
+msgid "Import Accounts..."
+msgstr "অ্যাকাউন্ট ইম্পোর্ট করুন..."
+
+#: ../src/empathy-accounts-dialog.ui.h:6
+#, fuzzy
+msgid "No protocol installed"
+msgstr "<b>কোনো প্রোটোকল ইনস্টল করা হয়নি</b>"
 
-#: ../src/empathy-accounts-dialog.glade.h:7
+#: ../src/empathy-accounts-dialog.ui.h:7
+#, fuzzy
+msgid "Settings"
+msgstr "<b>বিবিধ বৈশিষ্ট্য</b>"
+
+#: ../src/empathy-accounts-dialog.ui.h:8
 msgid ""
 "To add a new account, you first have to install a backend for each protocol "
 "you want to use."
-msgstr "নতুন অ্যাকাউন্ট যোগ করার জন্য, প্রথমে ব্যবহারযোগ্য প্রতিটি প্রোটোকলের জন্য একটি ব্যাক-এন্ড ইনস্টল করা আবশ্যক।"
+msgstr ""
+"নতুন অ্যাকাউন্ট যোগ করার জন্য, প্রথমে ব্যবহারযোগ্য প্রতিটি প্রোটোকলের জন্য একটি ব্যাক-"
+"এন্ড ইনস্টল করা আবশ্যক।"
 
-#: ../src/empathy-accounts-dialog.glade.h:8
+#: ../src/empathy-accounts-dialog.ui.h:9
 msgid "Type:"
 msgstr "প্রকৃতি:"
 
-#: ../src/empathy-call-window.c:142
-msgid "Closed"
-msgstr "বন্ধ"
-
-#: ../src/empathy-call-window.c:254
-msgid "End this call?"
-msgstr ""
+#: ../src/empathy-accounts-dialog.ui.h:10
+#, fuzzy
+msgid "_Add..."
+msgstr "পরিচিত ব্যক্তির তথ্য যোগ করুন... (_A)"
 
-#: ../src/empathy-call-window.c:256
-msgid "Closing this window will end the call in progress."
-msgstr ""
+#: ../src/empathy-accounts-dialog.ui.h:11
+#, fuzzy
+msgid "_Create a new account"
+msgstr "নতুন IRC নেটওয়ার্ক নির্মাণ করুন"
 
-#: ../src/empathy-call-window.c:257
-msgid "_End Call"
-msgstr ""
+#: ../src/empathy-accounts-dialog.ui.h:12
+#, fuzzy
+msgid "_Reuse an existing account"
+msgstr "অ্যাকাউন্ট প্রদর্শন ও সম্পাদনা"
 
-#: ../src/empathy-call-window.c:311
-msgid "Incoming call"
-msgstr ""
+#: ../src/empathy-call-window.c:63
+msgid "Connecting..."
+msgstr "সংযোগ স্থাপন করা হচ্ছে..."
 
-#: ../src/empathy-call-window.c:313
-#, c-format
-msgid "%s is calling you, do you want to answer?"
-msgstr ""
+#: ../src/empathy-call-window.c:415
+msgid "Contrast"
+msgstr "বৈপরিত্য"
 
-#: ../src/empathy-call-window.c:319
-msgid "_Reject"
-msgstr "পà§\8dরতà§\8dযাà¦\96à§\8dযান à¦\95রà§\81ন (_R)"
+#: ../src/empathy-call-window.c:418
+msgid "Brightness"
+msgstr "à¦\89à¦\9cà§\8dà¦\9cà§\8dবলতা"
 
-#: ../src/empathy-call-window.c:324
-msgid "_Answer"
-msgstr "à¦\89তà§\8dতর à¦¦à¦¿à¦¨ (_A)"
+#: ../src/empathy-call-window.c:421
+msgid "Gamma"
+msgstr "à¦\97ামা"
 
-#: ../src/empathy-call-window.c:379
-msgid "Empathy Call"
-msgstr ""
+#: ../src/empathy-call-window.c:526
+msgid "Volume"
+msgstr "আওয়াজ"
 
-#. To translators: Readying is the first state of the call, it is
-#. * preparing the connection and it does not yet ring.
-#: ../src/empathy-call-window.c:382
-msgid "Readying"
-msgstr "প্রস্তুত করা হচ্ছে"
+#: ../src/empathy-call-window.c:728
+msgid "_Sidebar"
+msgstr "সাইড-বার (_S)"
 
-#: ../src/empathy-call-window.c:391
-#, c-format
-msgid "%s - Empathy Call"
-msgstr ""
+#: ../src/empathy-call-window.c:747
+msgid "Dialpad"
+msgstr "ডায়াল-প্যাড"
 
-#: ../src/empathy-call-window.c:395
-msgid "Ringing"
-msgstr "à¦\98নà§\8dà¦\9fি à¦¬à¦¾à¦\9cà¦\9bà§\87"
+#: ../src/empathy-call-window.c:753
+msgid "Audio input"
+msgstr "à¦\85ডিà¦\93 à¦\87নপà§\81à¦\9f"
 
-#: ../src/empathy-call-window.c:408
-msgid "Connecting"
-msgstr "সà¦\82যà§\8bà¦\97 à¦¸à§\8dথাপন à¦\95রা à¦¹à¦\9aà§\8dà¦\9bà§\87"
+#: ../src/empathy-call-window.c:757
+msgid "Video input"
+msgstr "ভিডিà¦\93 à¦\87নপà§\81à¦\9f"
 
-#: ../src/empathy-call-window.c:524
+#: ../src/empathy-call-window.c:820
 #, c-format
-msgid "Incoming call from %s rejected because there is already a running call."
+msgid "Call with %s"
 msgstr ""
 
-#: ../src/empathy-call-window.glade.h:1
-msgid "#"
-msgstr "#"
+#: ../src/empathy-call-window.c:889
+#, fuzzy
+msgid "Call"
+msgstr "ডেকে নিন (_C)"
 
-#: ../src/empathy-call-window.glade.h:2
-msgid "*"
-msgstr "*"
+#. Translators: number of minutes:seconds the caller has been connected
+#: ../src/empathy-call-window.c:1308
+#, fuzzy, c-format
+msgid "Connected — %d:%02dm"
+msgstr "সংযুক্ত -- %d:%02dm"
 
-#: ../src/empathy-call-window.glade.h:3
-msgid "0"
-msgstr ""
+#: ../src/empathy-call-window.ui.h:1
+msgid "Hang up"
+msgstr ""
 
-#: ../src/empathy-call-window.glade.h:4
-msgid "1"
-msgstr ""
+#: ../src/empathy-call-window.ui.h:2
+msgid "Redial"
+msgstr ""
 
-#: ../src/empathy-call-window.glade.h:5
-msgid "2"
-msgstr "২"
+#: ../src/empathy-call-window.ui.h:3
+msgid "Send Audio"
+msgstr "à¦\85ডিà¦\93 à¦ªà¦¾à¦ à¦¾à¦¨"
 
-#: ../src/empathy-call-window.glade.h:6
-msgid "3"
-msgstr "৩"
+#: ../src/empathy-call-window.ui.h:4
+msgid "Send video"
+msgstr "ভিডিà¦\93 à¦ªà¦¾à¦ à¦¾à¦¨"
 
-#: ../src/empathy-call-window.glade.h:7
-msgid "4"
-msgstr "৪"
+#: ../src/empathy-call-window.ui.h:5
+msgid "Video preview"
+msgstr "ভিডিà¦\93র à¦ªà§\82রà§\8dবদà§\83শà§\8dয"
 
-#: ../src/empathy-call-window.glade.h:8
-msgid "5"
-msgstr "৫"
+#: ../src/empathy-call-window.ui.h:6
+msgid "_Call"
+msgstr "ডà§\87à¦\95à§\87 à¦¨à¦¿à¦¨ (_C)"
 
-#: ../src/empathy-call-window.glade.h:9
-msgid "6"
-msgstr "৬"
+#: ../src/empathy-call-window.ui.h:7 ../src/empathy-main-window.ui.h:21
+msgid "_View"
+msgstr "পà§\8dরদরà§\8dশন (_V)"
 
-#: ../src/empathy-call-window.glade.h:10
-msgid "7"
-msgstr "৭"
+#: ../src/empathy-chat-window.c:343
+#, c-format
+msgid "Conversations (%d)"
+msgstr "আলাপন (%d)"
 
-#: ../src/empathy-call-window.glade.h:11
-msgid "8"
-msgstr "৮"
+#: ../src/empathy-chat-window.c:475
+msgid "Typing a message."
+msgstr "বারà§\8dতা à¦²à§\87à¦\96া à¦¹à¦\9aà§\8dà¦\9bà§\87।"
 
-#: ../src/empathy-call-window.glade.h:12
-msgid "9"
-msgstr "৯"
+#: ../src/empathy-chatrooms-window.c:258
+msgid "Name"
+msgstr "নাম"
 
-#. To translators: The keypad is numbers [0-9], asterisk (*) and hash (#). Presented like on any phone
-#: ../src/empathy-call-window.glade.h:14
-msgid "<b>Keypad</b>"
-msgstr "<b>কি-প্যাড</b>"
+#: ../src/empathy-chatrooms-window.c:276
+msgid "Room"
+msgstr "রুম"
 
-#: ../src/empathy-call-window.glade.h:15
-msgid "<b>Volume</b>"
-msgstr "<b>আওয়াজ</b>"
+#: ../src/empathy-chatrooms-window.c:285
+msgid "Auto-Connect"
+msgstr "স্বয়ংক্রিয়-সংযোগ"
 
-#: ../src/empathy-call-window.glade.h:16
-msgid "Hang Up"
+#: ../src/empathy-chatrooms-window.ui.h:2
+msgid "Manage Favorite Rooms"
 msgstr ""
 
-#: ../src/empathy-call-window.glade.h:17
-msgid "Send Video"
-msgstr "ভিডিà¦\93 à¦ªà¦¾à¦ à¦¾à¦¨"
+#: ../src/empathy-event-manager.c:377
+msgid "Incoming call"
+msgstr "à¦\86à¦\97মনà¦\95ারà§\80 à¦\95ল"
 
-#: ../src/empathy-chat-window.c:319
+#: ../src/empathy-event-manager.c:380
 #, c-format
-msgid "Conversations (%d)"
+msgid "%s is calling you, do you want to answer?"
 msgstr ""
 
-#: ../src/empathy-chat-window.c:397
-msgid "Topic:"
-msgstr "বিষà§\9f:"
+#: ../src/empathy-event-manager.c:387
+msgid "_Reject"
+msgstr "পà§\8dরতà§\8dযাà¦\96à§\8dযান à¦\95রà§\81ন (_R)"
 
-#: ../src/empathy-chat-window.c:400
-msgid "Typing a message."
-msgstr "বারà§\8dতা à¦²à§\87à¦\96া à¦¹à¦\9aà§\8dà¦\9bà§\87।"
+#: ../src/empathy-event-manager.c:393
+msgid "_Answer"
+msgstr "à¦\89তà§\8dতর à¦¦à¦¿à¦¨ (_A)"
 
-#: ../src/empathy-chat-window.glade.h:1
-msgid "C_lear"
-msgstr "মুছে ফেলুন (_l)"
+#: ../src/empathy-event-manager.c:505
+#, c-format
+msgid "Incoming call from %s"
+msgstr "%s থেকে আগমনকারী কল"
 
-#: ../src/empathy-chat-window.glade.h:3
-msgid "Insert _Smiley"
-msgstr "স্মাইলি যোগ করুন (_S)"
+#: ../src/empathy-event-manager.c:545
+#, c-format
+msgid "%s is offering you an invitation"
+msgstr "%s আপনাকে আমন্ত্রণ জানাচ্ছেন"
 
-#: ../src/empathy-chat-window.glade.h:4
-msgid "Invitation _message:"
-msgstr "à¦\86মনà§\8dতà§\8dরণ à¦¬à¦¾à¦°à§\8dতা: (_m)"
+#: ../src/empathy-event-manager.c:551
+msgid "An external application will be started to handle it."
+msgstr "à¦\8fà¦\9fি à¦ªà¦°à¦¿à¦\9aালনার à¦\9cনà§\8dয à¦\8fà¦\95à¦\9fি à¦¬à¦¹à¦¿à¦¸à§\8dথিত à¦\85à§\8dযাপà§\8dলিà¦\95à§\87শন à¦\86রমà§\8dভ à¦\95রা à¦¹à¦¬à§\87।"
 
-#: ../src/empathy-chat-window.glade.h:5
-msgid "Invite"
-msgstr "à¦\86মনà§\8dতà§\8dরণ à¦\95রà§\81ন"
+#: ../src/empathy-event-manager.c:556
+msgid "You don't have the needed external application to handle it."
+msgstr "à¦\8fà¦\9fি à¦ªà¦°à¦¿à¦\9aালনার à¦\9cনà§\8dয à¦¬à¦¹à¦¿à¦¸à§\8dথিত à¦\85à§\8dযাপà§\8dলিà¦\95à§\87শনà§\87র à¦ªà§\8dরà§\9fà§\8bà¦\9cন à¦¨à§\87à¦\87।"
 
-#: ../src/empathy-chat-window.glade.h:6
-msgid "Move Tab _Left"
-msgstr "à¦\9fà§\8dযাব à¦¬à¦¾à¦\81দিà¦\95à§\87 à¦¸à¦°à¦¿à§\9fà§\87 à¦¨à¦¿à¦¨ (_L)"
+#: ../src/empathy-event-manager.c:683
+msgid "Room invitation"
+msgstr "রà§\81মà§\87র à¦\86মনà§\8dতà§\8dরণ"
 
-#: ../src/empathy-chat-window.glade.h:7
-msgid "Move Tab _Right"
-msgstr "ট্যাব ডানদিকে সরিয়ে নিন (_R)"
+#: ../src/empathy-event-manager.c:686
+#, c-format
+msgid "%s is inviting you to join %s"
+msgstr "%s আপনাকে %s-এ আমন্ত্রণ জানাচ্ছেন"
 
-#: ../src/empathy-chat-window.glade.h:8
-msgid "Select who would you like to invite:"
-msgstr "à¦\86মনà§\8dতà§\8dরিতদà§\87র à¦¤à¦¾à¦²à¦¿à¦\95া à¦¤à§\88রি à¦\95রà§\81ন:"
+#: ../src/empathy-event-manager.c:694
+msgid "_Decline"
+msgstr "পà§\8dরতà§\8dযাà¦\96à§\8dযান à¦\95রà§\81ন (_D)"
 
-#: ../src/empathy-chat-window.glade.h:9
-msgid "You have been invited to join a chat conference."
-msgstr ""
+#: ../src/empathy-event-manager.c:699
+#: ../src/empathy-new-chatroom-dialog.ui.h:7
+msgid "_Join"
+msgstr "যোগ দিন (_J)"
 
-#: ../src/empathy-chat-window.glade.h:10
-msgid "_Contact"
-msgstr "পরিচিত ব্যক্তি (_C)"
+#: ../src/empathy-event-manager.c:738
+#, c-format
+msgid "%s invited you to join %s"
+msgstr "%s আপনাকে %s-এ আমন্ত্রণ জানিয়েছেন"
 
-#: ../src/empathy-chat-window.glade.h:11 ../src/empathy-main-window.glade.h:10
-msgid "_Contents"
-msgstr "সূচী (_C)"
+#: ../src/empathy-event-manager.c:764
+#, c-format
+msgid "Incoming file transfer from %s"
+msgstr ""
 
-#: ../src/empathy-chat-window.glade.h:12
-msgid "_Conversation"
+#: ../src/empathy-event-manager.c:944
+#, c-format
+msgid "Subscription requested by %s"
+msgstr "%s দ্বারা অনুরোধ করা সাবস্ক্রিপশন"
+
+#: ../src/empathy-event-manager.c:948
+#, c-format
+msgid ""
+"\n"
+"Message: %s"
 msgstr ""
+"\n"
+"বার্তা: %s"
 
-#: ../src/empathy-chat-window.glade.h:13
-msgid "_Detach Tab"
-msgstr "ট্যাব বিচ্ছিন্ন করুন (_D)"
+#. Translators: time left, when it is more than one hour
+#: ../src/empathy-ft-manager.c:101
+#, c-format
+msgid "%u:%02u.%02u"
+msgstr "%u:%02u.%02u"
 
-#: ../src/empathy-chat-window.glade.h:15 ../src/empathy-main-window.glade.h:12
-msgid "_Help"
-msgstr "সাহায্য (_H)"
+#. Translators: time left, when is is less than one hour
+#: ../src/empathy-ft-manager.c:104
+#, c-format
+msgid "%02u.%02u"
+msgstr "%02u.%02u"
 
-#: ../src/empathy-chat-window.glade.h:16
-msgid "_Next Tab"
-msgstr "পরবর্তী ট্যাব (_N)"
+#: ../src/empathy-ft-manager.c:180
+msgctxt "file transfer percent"
+msgid "Unknown"
+msgstr "অজানা"
 
-#: ../src/empathy-chat-window.glade.h:17
-msgid "_Previous Tab"
-msgstr "পূর্ববর্তী ট্যাব (_P)"
+#: ../src/empathy-ft-manager.c:275
+#, fuzzy, c-format
+msgid "%s of %s at %s/s"
+msgstr "%s, সর্বমোট %s"
 
-#: ../src/empathy-chat-window.glade.h:18
-msgid "_Tabs"
-msgstr "ট্যাব (_T)"
+#: ../src/empathy-ft-manager.c:276
+#, c-format
+msgid "%s of %s"
+msgstr "%s, সর্বমোট %s"
 
-#: ../src/empathy-chatrooms-window.c:262
-msgid "Name"
-msgstr "নাম"
+#. translators: first %s is filename, second %s is the contact name
+#: ../src/empathy-ft-manager.c:307
+#, c-format
+msgid "Receiving \"%s\" from %s"
+msgstr "\"%s\" প্রাপ্ত করা হচ্ছে, %s থেকে"
 
-#: ../src/empathy-chatrooms-window.c:280
-msgid "Room"
-msgstr ""
+#. translators: first %s is filename, second %s is the contact name
+#: ../src/empathy-ft-manager.c:310
+#, c-format
+msgid "Sending \"%s\" to %s"
+msgstr "\"%s\" পাঠানো হচ্ছে, %s-কে"
 
-#: ../src/empathy-chatrooms-window.c:289
-msgid "Auto-Connect"
-msgstr "স্বয়ংক্রিয়-সংযোগ"
+#. translators: first %s is filename, second %s
+#. * is the contact name
+#: ../src/empathy-ft-manager.c:340
+#, fuzzy, c-format
+msgid "Error receiving \"%s\" from %s"
+msgstr "\"%s\" প্রাপ্ত করা হচ্ছে, %s থেকে"
 
-#: ../src/empathy-chatrooms-window.glade.h:2
-msgid "Edit Favorite Room"
+#: ../src/empathy-ft-manager.c:343
+msgid "Error receiving a file"
 msgstr ""
 
-#: ../src/empathy-chatrooms-window.glade.h:3
-msgid "Join room on start_up"
-msgstr ""
+#: ../src/empathy-ft-manager.c:348
+#, fuzzy, c-format
+msgid "Error sending \"%s\" to %s"
+msgstr "\"%s\" পাঠানো হচ্ছে, %s-কে"
 
-#: ../src/empathy-chatrooms-window.glade.h:4
-msgid "Join this chat room when Empathy starts and you are connected"
-msgstr ""
+#: ../src/empathy-ft-manager.c:351
+#, fuzzy
+msgid "Error sending a file"
+msgstr "'%s' বার্তা পাঠাতে সমস্যা: %s"
 
-#: ../src/empathy-chatrooms-window.glade.h:5
-msgid "Manage Favorite Rooms"
-msgstr ""
+#. translators: first %s is filename, second %s
+#. * is the contact name
+#: ../src/empathy-ft-manager.c:490
+#, c-format
+msgid "\"%s\" received from %s"
+msgstr "\"%s\" প্রাপ্ত হয়েছে, %s থেকে"
 
-#: ../src/empathy-chatrooms-window.glade.h:6
-msgid "N_ame:"
-msgstr "নাম: (_a)"
+#. translators: first %s is filename, second %s
+#. * is the contact name
+#: ../src/empathy-ft-manager.c:495
+#, c-format
+msgid "\"%s\" sent to %s"
+msgstr "\"%s\" প্রেরিত হয়েছে, %s-কে"
 
-#: ../src/empathy-chatrooms-window.glade.h:7
-msgid "S_erver:"
-msgstr "সারà§\8dভার: (_e)"
+#: ../src/empathy-ft-manager.c:498
+msgid "File transfer completed"
+msgstr "ফাà¦\87ল à¦¬à¦¿à¦¨à¦¿à¦®à§\9f à¦¸à¦®à§\8dপà§\82রà§\8dণ à¦¹à§\9fà§\87à¦\9bà§\87"
 
-#: ../src/empathy-chatrooms-window.glade.h:9
-#: ../src/empathy-new-chatroom-dialog.glade.h:9
-msgid "_Room:"
-msgstr ""
+#: ../src/empathy-ft-manager.c:617 ../src/empathy-ft-manager.c:784
+#, fuzzy
+msgid "Waiting for the other participant's response"
+msgstr "অন্য ব্যবহারকারীর প্রতিক্রিয়ার অপেক্ষা করা হচ্ছে"
 
-#: ../src/empathy-event-manager.c:166
+#: ../src/empathy-ft-manager.c:643 ../src/empathy-ft-manager.c:681
 #, c-format
-msgid ""
-"New message from %s:\n"
-"%s"
+msgid "Checking integrity of \"%s\""
 msgstr ""
-"%s থেকে প্রাপ্ত নতুন বার্তা:\n"
-"%s"
 
-#: ../src/empathy-event-manager.c:205
+#: ../src/empathy-ft-manager.c:646 ../src/empathy-ft-manager.c:684
 #, c-format
-msgid "Incoming call from %s"
+msgid "Hashing \"%s\""
 msgstr ""
 
-#: ../src/empathy-event-manager.c:238
-#, c-format
-msgid ""
-"%s is offering you an invitation, but you don't have the needed external "
-"application to handle it."
-msgstr ""
+#: ../src/empathy-ft-manager.c:1024
+msgid "%"
+msgstr "%"
 
-#: ../src/empathy-event-manager.c:263
-msgid "Invitation Error"
-msgstr "à¦\86মনà§\8dতà§\8dরণ à¦¸à¦\82à¦\95à§\8dরানà§\8dত à¦¤à§\8dরà§\81à¦\9fি"
+#: ../src/empathy-ft-manager.c:1036
+msgid "File"
+msgstr "ফাà¦\87ল"
 
-#: ../src/empathy-event-manager.c:289
-#, c-format
-msgid ""
-"%s is offering you an invitation. An external application will be started to "
-"handle it."
-msgstr ""
+#: ../src/empathy-ft-manager.c:1058
+msgid "Remaining"
+msgstr "অবশিষ্ট"
 
-#: ../src/empathy-event-manager.c:345
-#, c-format
-msgid "Subscription requested by %s"
+#: ../src/empathy-ft-manager.ui.h:1
+#, fuzzy
+msgid "File Transfers"
+msgstr "ফাইল বিনিময়"
+
+#: ../src/empathy-ft-manager.ui.h:2
+msgid "Remove completed, canceled and failed file transfers from the list"
 msgstr ""
 
-#: ../src/empathy-event-manager.c:348
-#, c-format
+#. Translators: this is the header of a treeview column
+#: ../src/empathy-import-dialog.c:259
+msgid "Import"
+msgstr "ইম্পোর্ট"
+
+#: ../src/empathy-import-dialog.c:268
+msgid "Protocol"
+msgstr "প্রোটোকল"
+
+#: ../src/empathy-import-dialog.c:294
+msgid "Source"
+msgstr "উৎসস্থল"
+
+#: ../src/empathy-import-dialog.c:388
 msgid ""
-"\n"
-"Message: %s"
+"No accounts to import could be found. Empathy currently only supports "
+"importing accounts from Pidgin."
 msgstr ""
-"\n"
-"বার্তা: %s"
 
-#: ../src/empathy-main-window.c:466
-msgid "Show and edit accounts"
-msgstr "à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦ªà§\8dরদরà§\8dশন à¦\93 à¦¸à¦®à§\8dপাদনা"
+#: ../src/empathy-import-dialog.ui.h:1
+msgid "Import Accounts"
+msgstr "à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦\87মà§\8dপà§\8bরà§\8dà¦\9f à¦\95রà§\81ন"
 
-#: ../src/empathy-main-window.c:836
-msgid "Contact"
-msgstr "পরিচিত ব্যক্তি"
-
-#: ../src/empathy-main-window.c:1038
+#: ../src/empathy-main-window.c:395
 msgid "_Edit account"
 msgstr "অ্যাকাউন্ট সম্পাদনা (_E)"
 
-#: ../src/empathy-main-window.c:1121
+#: ../src/empathy-main-window.c:498
 msgid "No error specified"
 msgstr "ত্রুটি নির্ধারিত হয়নি"
 
-#: ../src/empathy-main-window.c:1124
+#: ../src/empathy-main-window.c:501
 msgid "Network error"
 msgstr "নেটওয়ার্ক সংক্রান্ত ত্রুটি"
 
-#: ../src/empathy-main-window.c:1127
+#: ../src/empathy-main-window.c:504
 msgid "Authentication failed"
 msgstr "অনুমোদন ব্যর্থ"
 
-#: ../src/empathy-main-window.c:1130
+#: ../src/empathy-main-window.c:507
 msgid "Encryption error"
 msgstr "এনক্রিপশন সংক্রান্ত ত্রুটি"
 
-#: ../src/empathy-main-window.c:1133
+#: ../src/empathy-main-window.c:510
 msgid "Name in use"
 msgstr "নাম বর্তমানে ব্যবহৃত হচ্ছে"
 
-#: ../src/empathy-main-window.c:1136
+#: ../src/empathy-main-window.c:513
 msgid "Certificate not provided"
 msgstr "সার্টিফিকেট উপলব্ধ করা হয়নি"
 
-#: ../src/empathy-main-window.c:1139
+#: ../src/empathy-main-window.c:516
 msgid "Certificate untrusted"
 msgstr "সার্টিফিকেট বিশ্বস্ত নয়"
 
-#: ../src/empathy-main-window.c:1142
+#: ../src/empathy-main-window.c:519
 msgid "Certificate expired"
 msgstr "সার্টিফিকেটের মেয়াদ উত্তীর্ণ হয়েছে"
 
-#: ../src/empathy-main-window.c:1145
+#: ../src/empathy-main-window.c:522
 msgid "Certificate not activated"
 msgstr "সার্টিফিকেট সক্রিয় করা হয়নি"
 
-#: ../src/empathy-main-window.c:1148
+#: ../src/empathy-main-window.c:525
 msgid "Certificate hostname mismatch"
 msgstr "সার্টিফিকেটের হোস্টনেম-এ গরমিল"
 
-#: ../src/empathy-main-window.c:1151
+#: ../src/empathy-main-window.c:528
 msgid "Certificate fingerprint mismatch"
 msgstr "সার্টিফিকেটের ফিনঙ্গারপ্রিন্ট-এ গরমিল"
 
-#: ../src/empathy-main-window.c:1154
+#: ../src/empathy-main-window.c:531
 msgid "Certificate self-signed"
 msgstr "স্বয়ং স্বাক্ষরিত সার্টিফিকেট"
 
-#: ../src/empathy-main-window.c:1157
+#: ../src/empathy-main-window.c:534
 msgid "Certificate error"
 msgstr "সার্টিফিকেট সংক্রান্ত ত্রুটি"
 
-#: ../src/empathy-main-window.c:1160
+#: ../src/empathy-main-window.c:537
 msgid "Unknown error"
 msgstr "অজানা ত্রুটি"
 
-#: ../src/empathy-main-window.glade.h:1
+#: ../src/empathy-main-window.c:1220
+msgid "Show and edit accounts"
+msgstr "অ্যাকাউন্ট প্রদর্শন ও সম্পাদনা"
+
+#: ../src/empathy-main-window.ui.h:1 ../src/empathy-preferences.ui.h:10
 msgid "Contact List"
 msgstr "পরিচিত ব্যক্তিদের তালিকা"
 
-#: ../src/empathy-main-window.glade.h:2
+#: ../src/empathy-main-window.ui.h:2
+msgid "Contacts on a _Map"
+msgstr ""
+
+#: ../src/empathy-main-window.ui.h:3
 msgid "Context"
 msgstr "প্রসঙ্গ"
 
-#: ../src/empathy-main-window.glade.h:3
+#: ../src/empathy-main-window.ui.h:4
 msgid "Join _Favorites"
-msgstr ""
-
-#: ../src/empathy-main-window.glade.h:4
-msgid "Join _New..."
-msgstr ""
+msgstr "জনপ্রিয়গুলিতে যোগ দিন (_F)"
 
-#: ../src/empathy-main-window.glade.h:5
+#: ../src/empathy-main-window.ui.h:5
 msgid "Manage Favorites"
-msgstr ""
-
-#: ../src/empathy-main-window.glade.h:6
-msgid "Show _Offline Contacts"
-msgstr ""
+msgstr "জনপ্রিয় মান পরিচালনা"
 
-#: ../src/empathy-main-window.glade.h:7
+#: ../src/empathy-main-window.ui.h:6
 msgid "_Accounts"
 msgstr "অ্যাকাউন্ট তালিকা (_A)"
 
-#: ../src/empathy-main-window.glade.h:8
+#: ../src/empathy-main-window.ui.h:7
 msgid "_Add Contact..."
 msgstr "পরিচিত ব্যক্তির তথ্য যোগ করুন... (_A)"
 
-#: ../src/empathy-main-window.glade.h:13 ../src/empathy-status-icon.glade.h:2
-msgid "_New Conversation..."
+#: ../src/empathy-main-window.ui.h:9
+msgid "_Contents"
+msgstr "সূচী (_C)"
+
+#: ../src/empathy-main-window.ui.h:10
+msgid "_Debug"
 msgstr ""
 
-#: ../src/empathy-main-window.glade.h:14
+#: ../src/empathy-main-window.ui.h:12
+#, fuzzy
+msgid "_File Transfers"
+msgstr "ফাইল বিনিময়"
+
+#: ../src/empathy-main-window.ui.h:13
+msgid "_Help"
+msgstr "সাহায্য (_H)"
+
+#: ../src/empathy-main-window.ui.h:14
+#, fuzzy
+msgid "_Join..."
+msgstr "যোগ দিন (_J)"
+
+#: ../src/empathy-main-window.ui.h:15 ../src/empathy-status-icon.ui.h:2
+msgid "_New Conversation..."
+msgstr "নতুন আলাপন...(_N)"
+
+#: ../src/empathy-main-window.ui.h:16
+#, fuzzy
+msgid "_Offline Contacts"
+msgstr "অফ-লাইন পরিচিতিদের তথ্য প্রকাশ করা হবে (_O)"
+
+#: ../src/empathy-main-window.ui.h:17
 msgid "_Personal Information"
 msgstr "ব্যক্তিগত তথ্য (_P)"
 
-#: ../src/empathy-main-window.glade.h:16
+#: ../src/empathy-main-window.ui.h:19
+#, fuzzy
+msgid "_Previous Conversations"
+msgstr "পূর্ববর্তী আলাপন"
+
+#: ../src/empathy-main-window.ui.h:20
 msgid "_Room"
+msgstr "রুম (_R)"
+
+#: ../src/empathy-new-chatroom-dialog.c:332
+#, fuzzy
+msgid "Chat Room"
+msgstr "চ্যাট রুম"
+
+#: ../src/empathy-new-chatroom-dialog.c:348
+#, fuzzy
+msgid "Members"
+msgstr "থিম"
+
+#: ../src/empathy-new-chatroom-dialog.c:492
+#, c-format
+msgctxt ""
+"Room/Join's roomlist tooltip. Parametersare a channel name, yes/no, yes/no "
+"and a number."
+msgid ""
+"<b>%s</b>\n"
+"Invite required: %s\n"
+"Password required: %s\n"
+"Members: %s"
 msgstr ""
 
-#: ../src/empathy-new-chatroom-dialog.c:290
-msgid "Chat Rooms"
+#: ../src/empathy-new-chatroom-dialog.c:494
+#: ../src/empathy-new-chatroom-dialog.c:495
+msgid "Yes"
 msgstr ""
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:2
-msgid "Browse:"
-msgstr "ব্রাউজ করুন:"
+#: ../src/empathy-new-chatroom-dialog.c:494
+#: ../src/empathy-new-chatroom-dialog.c:495
+msgid "No"
+msgstr ""
+
+#: ../src/empathy-new-chatroom-dialog.c:522
+msgid "Could not start room listing"
+msgstr ""
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:3
-msgid "Enter the room name to join here or click on one or more rooms in the list."
+#: ../src/empathy-new-chatroom-dialog.c:532
+msgid "Could not stop room listing"
 msgstr ""
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:4
+#: ../src/empathy-new-chatroom-dialog.ui.h:2
+msgid "Couldn't load room list"
+msgstr ""
+
+#: ../src/empathy-new-chatroom-dialog.ui.h:3
+msgid ""
+"Enter the room name to join here or click on one or more rooms in the list."
+msgstr ""
+
+#: ../src/empathy-new-chatroom-dialog.ui.h:4
 msgid ""
 "Enter the server which hosts the room, or leave it empty if the room is on "
 "the current account's server"
 msgstr ""
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:5
-msgid "Join"
-msgstr "যোগ দিন"
+#: ../src/empathy-new-chatroom-dialog.ui.h:5
+#, fuzzy
+msgid "Join Room"
+msgstr "রুম"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:6
-msgid "Join New"
-msgstr "নতুনে যোগ দিন"
+#: ../src/empathy-new-chatroom-dialog.ui.h:6
+#, fuzzy
+msgid "Room List"
+msgstr "রুম তালিকার লোকেইল: (_R)"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:7
-msgid "Re_fresh"
-msgstr "নতà§\81ন à¦\95রà§\87 à¦ªà§\8dরদরà§\8dশন (_f)"
+#: ../src/empathy-new-chatroom-dialog.ui.h:8
+msgid "_Room:"
+msgstr "রà§\81ম: (_R)"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:8
-msgid "This list represents all chat rooms hosted on the server you have entered."
-msgstr ""
+#: ../src/empathy-preferences.c:159
+msgid "Message received"
+msgstr "প্রাপ্ত বার্তা"
 
-#: ../src/empathy-preferences.c:264
-msgid "Language"
-msgstr "ভাষা"
+#: ../src/empathy-preferences.c:160
+msgid "Message sent"
+msgstr "বারà§\8dতা à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à§\9fà§\87à¦\9bà§\87"
 
-#: ../src/empathy-preferences.glade.h:1
-msgid "<b>Appearance</b>"
-msgstr "<b>চেহারা ছবি</b>"
+#: ../src/empathy-preferences.c:161
+msgid "New conversation"
+msgstr "নতুন আলাপন"
 
-#. To translators: Audio notifications preferences
-#: ../src/empathy-preferences.glade.h:3
-msgid "<b>Audio</b>"
-msgstr "<b>অডিও</b>"
+#: ../src/empathy-preferences.c:162
+msgid "Contact goes online"
+msgstr "পরিচিতি অন-লাইন এসেছেন"
 
-#: ../src/empathy-preferences.glade.h:4
-msgid "<b>Behaviour</b>"
-msgstr "<b>আচরণ</b>"
+#: ../src/empathy-preferences.c:163
+msgid "Contact goes offline"
+msgstr "পরিচিতি অফ-লাইন চলে গেছেন"
 
-#: ../src/empathy-preferences.glade.h:5
-msgid "<b>Contact List</b>"
-msgstr "<b>পরিচিতদের তালিকা</b>"
+#: ../src/empathy-preferences.c:164
+msgid "Account connected"
+msgstr "অ্যাকাউন্ট সংযুক্ত করা হয়েছে"
 
-#: ../src/empathy-preferences.glade.h:6
-msgid "<b>Enable spell checking for languages:</b>"
-msgstr "<b>চিহ্নিত ভাষাগুলির জন্য বানান পরীক্ষণ সক্রিয় করা হবে:</b>"
+#: ../src/empathy-preferences.c:165
+msgid "Account disconnected"
+msgstr "অ্যাকাউন্টের সাথে সংযোগ বিচ্ছিন্ন করা হয়েছে"
+
+#: ../src/empathy-preferences.c:432
+msgid "Language"
+msgstr "ভাষা"
 
-#. To translators: Visual notifications preferences, like notify bubbles, etc.
-#: ../src/empathy-preferences.glade.h:8
-msgid "<b>Visual</b>"
+#: ../src/empathy-preferences.ui.h:1
+msgid "Adium theme to use:"
 msgstr ""
 
-#: ../src/empathy-preferences.glade.h:9
-msgid ""
-"<small>The list of languages reflects only the languages for which you have "
-"a dictionary installed.</small>"
+#: ../src/empathy-preferences.ui.h:2
+msgid "Allow _GPS usage"
 msgstr ""
 
-#: ../src/empathy-preferences.glade.h:10
+#: ../src/empathy-preferences.ui.h:3
+msgid "Allow _cellphone usage"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:4
+msgid "Allow _network usage"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:5
+#, fuzzy
+msgid "Appearance"
+msgstr "<b>চেহারা ছবি</b>"
+
+#: ../src/empathy-preferences.ui.h:6
 msgid "Automatically _connect on startup "
 msgstr "প্রারম্ভকালে স্বয়ংক্রিয়রূপে সংযোগ স্থাপন করা হবে (_c)"
 
-#: ../src/empathy-preferences.glade.h:11
+#: ../src/empathy-preferences.ui.h:7
 msgid "Avatars are user chosen images shown in the contact list"
 msgstr ""
 
-#: ../src/empathy-preferences.glade.h:12
+#: ../src/empathy-preferences.ui.h:8
+#, fuzzy
+msgid "Behavior"
+msgstr "<b>আচরণ</b>"
+
+#: ../src/empathy-preferences.ui.h:9
 msgid "Chat Th_eme:"
-msgstr ""
+msgstr "চ্যাটের থিম: (_e)"
+
+#: ../src/empathy-preferences.ui.h:11
+msgid "Disable notifications when _away or busy"
+msgstr "অনুপস্থিত অথবা ব্যস্ত থাকলে সূচনাপ্রদানের ব্যবস্থা নিষ্ক্রিয় করা হবে (_a)"
 
-#: ../src/empathy-preferences.glade.h:13
-msgid "Display notifications when contacts come _online"
-msgstr "পরিà¦\9aিত à¦¬à§\8dযà¦\95à§\8dতিরা à¦\85ন-লাà¦\87ন à¦¯à§\8bà¦\97দান à¦\95রলà§\87 à¦¸à§\82à¦\9aনাবারà§\8dতা à¦ªà§\8dরদরà§\8dশিত à¦¹à¦¬à§\87 (_o)"
+#: ../src/empathy-preferences.ui.h:12
+msgid "Disable sounds when _away or busy"
+msgstr "à¦\85নà§\81পসà§\8dথিত à¦\85থবা à¦¬à§\8dযসà§\8dত à¦¥à¦¾à¦\95লà§\87 à¦¶à¦¬à§\8dদ à¦¨à¦¿à¦·à§\8dà¦\95à§\8dরিà§\9f à¦\95রা à¦¹à¦¬à§\87 (_a)"
 
-#: ../src/empathy-preferences.glade.h:14
-msgid "Enable sounds when _away"
-msgstr "অনুপস্থিত হলে শব্দ সক্রিয় করা হবে (_a)"
+#: ../src/empathy-preferences.ui.h:13
+msgid "Enable notifications when the _chat is not focused"
+msgstr ""
 
-#: ../src/empathy-preferences.glade.h:15
-msgid "Enable sounds when _busy"
-msgstr "ব্যস্ত অবস্থায় শব্দ সক্রিয় করা হবে (_b)"
+#: ../src/empathy-preferences.ui.h:14
+#, fuzzy
+msgid "Enable spell checking for languages:"
+msgstr "<b>চিহ্নিত ভাষাগুলির জন্য বানান পরীক্ষণ সক্রিয় করা হবে:</b>"
 
-#: ../src/empathy-preferences.glade.h:16
+#: ../src/empathy-preferences.ui.h:15
 msgid "General"
 msgstr "সাধারণ"
 
-#: ../src/empathy-preferences.glade.h:17
+#: ../src/empathy-preferences.ui.h:16
+msgid "Geoclue Settings"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:17
+#, fuzzy
+msgid "Location"
+msgstr "সূচনাবার্তা"
+
+#: ../src/empathy-preferences.ui.h:18
+msgid "Not a valid adium theme"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:19
 msgid "Notifications"
 msgstr "সূচনাবার্তা"
 
-#: ../src/empathy-preferences.glade.h:18
+#: ../src/empathy-preferences.ui.h:20
+#, fuzzy
+msgid "Play sound for events"
+msgstr "<b>বিভিন্ন ঘটনার জন্য শব্দ বাজানো হবে</b>"
+
+#: ../src/empathy-preferences.ui.h:21
 msgid "Preferences"
 msgstr "পছন্দ"
 
-#: ../src/empathy-preferences.glade.h:19
+#: ../src/empathy-preferences.ui.h:22
+msgid "Privacy"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:23
+msgid ""
+"Reduced location accuracy means that nothing more precise than your city, "
+"state and country will be published.  GPS coordinates will have a random "
+"value added (&#xB1;0.25&#xB0;)."
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:24
 msgid "Show _avatars"
 msgstr "অবতারের ছবি প্রদর্শন করা হবে (_a)"
 
-#: ../src/empathy-preferences.glade.h:20
+#: ../src/empathy-preferences.ui.h:25
 msgid "Show _smileys as images"
 msgstr "ছবি রূপে স্মাইলি প্রদর্শন করা হবে (_s)"
 
-#: ../src/empathy-preferences.glade.h:21
+#: ../src/empathy-preferences.ui.h:26
 msgid "Show co_mpact contact list"
-msgstr ""
+msgstr "পরিচিতিদের তালিকা সংকুচন করে প্রদর্শন করা হবে (_m)"
+
+#: ../src/empathy-preferences.ui.h:27
+#, fuzzy
+msgid "Show contact _list in rooms"
+msgstr "পরিচিত ব্যক্তিদের তালিকা প্রদর্শন করা হবে (_S)"
 
-#: ../src/empathy-preferences.glade.h:22
+#: ../src/empathy-preferences.ui.h:28
 msgid "Sort by _name"
 msgstr "নাম অনুযায়ী সুবিন্যস্ত করা হবে (_n)"
 
-#: ../src/empathy-preferences.glade.h:23
+#: ../src/empathy-preferences.ui.h:29
 msgid "Sort by s_tate"
 msgstr "অবস্থা অনুযায়ী সুবিন্যস্ত করা হবে (_t)"
 
-#: ../src/empathy-preferences.glade.h:24
+#: ../src/empathy-preferences.ui.h:30
+msgid "Sounds"
+msgstr "শব্দ"
+
+#: ../src/empathy-preferences.ui.h:31
 msgid "Spell Checking"
 msgstr "বানা পরীক্ষণ"
 
-#: ../src/empathy-preferences.glade.h:25
+#: ../src/empathy-preferences.ui.h:32
+msgid ""
+"The list of languages reflects only the languages for which you have a "
+"dictionary installed."
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:33
 msgid "Themes"
 msgstr "থিম"
 
-#: ../src/empathy-preferences.glade.h:26
+#: ../src/empathy-preferences.ui.h:34
+msgid "_Enable bubble notifications"
+msgstr "বাবল দ্বারা সূচনাপ্রদান সক্রিয় করা হবে (_E)"
+
+#: ../src/empathy-preferences.ui.h:35
+msgid "_Enable sound notifications"
+msgstr "শব্দ দ্বারা সূচনাপ্রদান সক্রিয় করা হবে (_E)"
+
+#: ../src/empathy-preferences.ui.h:36
 msgid "_Open new chats in separate windows"
+msgstr "নতুন চ্যাটগুলি পৃথক উইন্ডোর মধ্যে খোলা হবে (_O)"
+
+#: ../src/empathy-preferences.ui.h:37
+msgid "_Publish location to my contacts"
 msgstr ""
 
-#: ../src/empathy-preferences.glade.h:27
-msgid "_Play sound when messages arrive"
-msgstr "নতুন বার্তা প্রাপ্ত হলে শব্দ বাজানো হবে (_P)"
+#: ../src/empathy-preferences.ui.h:38
+msgid "_Reduce location accuracy"
+msgstr ""
 
-#: ../src/empathy-status-icon.glade.h:1
+#: ../src/empathy-status-icon.ui.h:1
 msgid "Status"
 msgstr "অবস্থা"
 
-#: ../src/empathy-status-icon.glade.h:3
+#: ../src/empathy-status-icon.ui.h:3
 msgid "_Quit"
 msgstr "প্রস্থান (_Q)"
 
-#: ../src/empathy-status-icon.glade.h:4
+#: ../src/empathy-status-icon.ui.h:4
 msgid "_Show Contact List"
 msgstr "পরিচিত ব্যক্তিদের তালিকা প্রদর্শন করা হবে (_S)"
 
+#: ../src/empathy-tube-dispatch.c:375
+#, c-format
+msgid "Unable to start application for service %s: %s"
+msgstr "%s পরিসেবার জন্য অ্যাপ্লিকেশন আরম্ভ করতে ব্যর্থ: %s"
+
+#: ../src/empathy-tube-dispatch.c:446
+#, c-format
+msgid ""
+"An invitation was offered for service %s, but you don't have the needed "
+"application to handle it"
+msgstr ""
+
+#: ../src/empathy-call-window-fullscreen.ui.h:1
+msgid "gtk-leave-fullscreen"
+msgstr ""
+
+#: ../src/empathy-map-view.ui.h:1
+#, fuzzy
+msgid "Contact Map View"
+msgstr "পরিচিত ব্যক্তিদের তালিকা"
+
+#: ../src/empathy-debug-dialog.c:111 ../src/empathy-debug-dialog.c:1075
+msgid "Error"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:114 ../src/empathy-debug-dialog.c:1069
+#, fuzzy
+msgid "Critical"
+msgstr "ক্রোয়েশিয়ান"
+
+#: ../src/empathy-debug-dialog.c:117 ../src/empathy-debug-dialog.c:1063
+#, fuzzy
+msgid "Warning"
+msgstr "অবশিষ্ট"
+
+#: ../src/empathy-debug-dialog.c:120 ../src/empathy-debug-dialog.c:1057
+#: ../src/empathy-debug-dialog.c:1105
+#, fuzzy
+msgid "Message"
+msgstr "বার্তা:"
+
+#: ../src/empathy-debug-dialog.c:123 ../src/empathy-debug-dialog.c:1051
+msgid "Info"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:126 ../src/empathy-debug-dialog.c:1045
+msgid "Debug"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:837
+#, fuzzy
+msgid "Save"
+msgstr "সার্ভার"
+
+#: ../src/empathy-debug-dialog.c:940
+msgid "Debug Window"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:1013
+msgid "Pause"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:1025
+msgid "Level "
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:1094
+#, fuzzy
+msgid "Time"
+msgstr "সাধারণ"
+
+#: ../src/empathy-debug-dialog.c:1096
+#, fuzzy
+msgid "Domain"
+msgstr "রোমেনিয়ান"
+
+#: ../src/empathy-debug-dialog.c:1098
+msgid "Category"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:1100
+msgid "Level"
+msgstr ""
+
+#: ../src/empathy-debug-dialog.c:1132
+msgid ""
+"The selected connection manager does not support the remote debugging "
+"extension."
+msgstr ""
+
+#~ msgid "Forget password and clear the entry."
+#~ msgstr "পাসওয়ার্ড মুছে ফেলা হবে ও এনট্রি পরিশ্রুত করা হবে।"
+
+#~ msgid "<b>Network</b>"
+#~ msgstr "<b>নেটওয়ার্ক</b>"
+
+#~ msgid "<b>Servers</b>"
+#~ msgstr "<b>সার্ভার</b>"
+
+#~ msgid "Edit the selected IRC network"
+#~ msgstr "নির্বাচিত IRC নেটওয়ার্কের বৈশিষ্ট্য পরিবর্তন করুন"
+
+#~ msgid "Remove the selected IRC network"
+#~ msgstr "নির্বাচিত IRC নেটওয়ার্ক মুছে ফেলুন"
+
+#~ msgid "_Check Word Spelling..."
+#~ msgstr "শব্দের বানান পরীক্ষা করুন...(_C)"
+
+#~ msgid "<b>Topic:</b>"
+#~ msgstr "<b>বিষয়:</b>"
+
+#~ msgid "Group Chat"
+#~ msgstr "দলভিক্তিক আলাপন"
+
+#~ msgid "Contact Information"
+#~ msgstr "যোগাযোগ সংক্রান্ত তথ্য"
+
+#~ msgid "I would like to add you to my contact list."
+#~ msgstr "আমি আপনাকের আমার পরিচিতি তালিকায় যোগ করতে ইচ্ছুক।"
+
+#~ msgid "Sorry, I don't want you in my contact list anymore."
+#~ msgstr "দুঃখিত, আমার পরিচিতি তালিকায় আপনাকে আমি স্থান দিতে ইচ্ছুক নই।"
+
+#~ msgid "<b>Groups</b>"
+#~ msgstr "<b>দল</b>"
+
+#~ msgid "Contact information"
+#~ msgstr "যোগাযোগ সংক্রান্ত তথ্য"
+
+#~ msgid "Word"
+#~ msgstr "শব্দ"
+
+#~ msgid "Suggestions for the word"
+#~ msgstr "শব্দের প্রস্তাব"
+
+#~ msgid "Spell Checker"
+#~ msgstr "বানান পরীক্ষণ ব্যবস্থা"
+
+#~ msgid "Suggestions for the word:"
+#~ msgstr "শব্দের প্রস্তাব:"
+
+#~ msgid "<b>New Account</b>"
+#~ msgstr "<b>নতুন অ্যাকাউন্ট</b>"
+
+#~ msgid "I already have an account I want to use"
+#~ msgstr "ব্যবহারযোগ্য আমার একটি অ্যাকাউন্ট বর্তমান উপস্থিত রয়েছে"
+
+#~| msgid ""
+#~| "New message from %s:\n"
+#~| "%s"
+#~ msgid "New message from %s"
+#~ msgstr "%s থেকে প্রাপ্ত নতুন বার্তা"
+
+#~ msgid "C_lear"
+#~ msgstr "মুছে ফেলুন (_l)"
+
+#~ msgid "Chat"
+#~ msgstr "আলাপন"
+
+#~ msgid "Insert _Smiley"
+#~ msgstr "স্মাইলি যোগ করুন (_S)"
+
+#~ msgid "Invitation _message:"
+#~ msgstr "আমন্ত্রণ বার্তা: (_m)"
+
+#~ msgid "Invite"
+#~ msgstr "আমন্ত্রণ করুন"
+
+#~ msgid "Move Tab _Left"
+#~ msgstr "ট্যাব বাঁদিকে সরিয়ে নিন (_L)"
+
+#~ msgid "Move Tab _Right"
+#~ msgstr "ট্যাব ডানদিকে সরিয়ে নিন (_R)"
+
+#~ msgid "Select who would you like to invite:"
+#~ msgstr "আমন্ত্রিতদের তালিকা তৈরি করুন:"
+
+#~ msgid "You have been invited to join a chat conference."
+#~ msgstr "চ্যাট বৈঠকে যোগদানের জন্য আপনাকে আমন্ত্রণ করা হয়েছে।"
+
+#~ msgid "_Contact"
+#~ msgstr "পরিচিত ব্যক্তি (_C)"
+
+#~ msgid "_Conversation"
+#~ msgstr "আলাপন (_C)"
+
+#~ msgid "_Detach Tab"
+#~ msgstr "ট্যাব বিচ্ছিন্ন করুন (_D)"
+
+#~ msgid "_Favorite Chatroom"
+#~ msgstr "জনপ্রিয় চ্যাট-রুম (_F)"
+
+#~ msgid "_Next Tab"
+#~ msgstr "পরবর্তী ট্যাব (_N)"
+
+#~ msgid "_Previous Tab"
+#~ msgstr "পূর্ববর্তী ট্যাব (_P)"
+
+#~ msgid "_Tabs"
+#~ msgstr "ট্যাব (_T)"
+
+#~ msgid "Edit Favorite Room"
+#~ msgstr "জনপ্রিয় রুমের তালিকা সম্পাদনা"
+
+#~ msgid "Join room on start_up"
+#~ msgstr "প্রারম্ভকালে রুমে সংযোগ করা হবে (_u)"
+
+#~ msgid "N_ame:"
+#~ msgstr "নাম: (_a)"
+
+#~ msgid "S_erver:"
+#~ msgstr "সার্ভার: (_e)"
+
+#~| msgid "unknown"
+#~ msgctxt "file size"
+#~ msgid "Unknown"
+#~ msgstr "অজানা"
+
+#~ msgid "\"%s\" receiving from %s"
+#~ msgstr "\"%s\" প্রাপ্ত করা হচ্ছে, %s থেকে"
+
+#~ msgid "\"%s\" sending to %s"
+#~ msgstr "\"%s\" পাঠানো হচ্ছে, %s-কে"
+
+#~ msgid "File transfer canceled: %s"
+#~ msgstr "ফাইল বিনিময় বাতিল করা হয়েছে: %s"
+
+#~| msgid "unknown"
+#~ msgctxt "remaining time"
+#~ msgid "Unknown"
+#~ msgstr "অজানা"
+
+#~ msgid "Cannot save file to this location"
+#~ msgstr "এই স্থানে ফাইল সংরক্ষণ করা সম্ভব নয়"
+
+#~ msgid "Save file as..."
+#~ msgstr "নতুন রূপে ফাইল সংরক্ষণ করুন..."
+
+#~| msgid "unknown"
+#~ msgid "unknown size"
+#~ msgstr "অজানা মাপ"
+
+#~| msgid "I would like to add you to my contact list."
+#~ msgid "%s would like to send you a file"
+#~ msgstr "%s আপনাকে একটি ফাইল সংরক্ষণ করতে ইচ্ছুক"
+
+#~ msgid "Do you want to accept the file \"%s\" (%s)?"
+#~ msgstr "আপনি কি \"%s\" (%s) ফাইলটি গ্রহণ করতে ইচ্ছুক?"
+
+#~| msgid "_Accounts"
+#~ msgid "_Accept"
+#~ msgstr "গ্রহণ করুন (_A)"
+
+#~ msgid "Join _New..."
+#~ msgstr "নতুন একটিতে যোগ দিন...(_N)"
+
+#~ msgid "Browse:"
+#~ msgstr "ব্রাউজ করুন:"
+
+#~ msgid "Join"
+#~ msgstr "যোগ দিন"
+
+#~ msgid "Join New"
+#~ msgstr "নতুনে যোগ দিন"
+
+#~ msgid "Re_fresh"
+#~ msgstr "নতুন করে প্রদর্শন (_f)"
+
+#~ msgid "<b>Contact List</b>"
+#~ msgstr "<b>পরিচিতদের তালিকা</b>"
index 4ef1512f853f9ea51d39a1cb62bd70b48cd77e0c..c8bde79a5ff6e6b00e1e89bf6a4378fcfef299d0 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -8,8 +8,8 @@ msgstr ""
 "Project-Id-Version: empathy.HEAD\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 "product=empathy&component=general\n"
-"POT-Creation-Date: 2009-06-12 10:05+0000\n"
-"PO-Revision-Date: 2009-06-13 13:14+0200\n"
+"POT-Creation-Date: 2009-06-19 13:18+0000\n"
+"PO-Revision-Date: 2009-06-21 12:05+0200\n"
 "Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
 "Language-Team: Español <gnome-es-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
@@ -139,7 +139,6 @@ msgid "Path of the adium theme to use"
 msgstr "Ruta del tema adium que usar"
 
 #: ../data/empathy.schemas.in.h:27
-#| msgid "Whether to use the theme for chat rooms or not."
 msgid "Path of the adium theme to use if the theme used for chat is adium."
 msgstr "Ruta al tema adium que usar si el tema usado para el chat es adium."
 
@@ -185,63 +184,68 @@ msgid "Show avatars"
 msgstr "Mostrar avatares"
 
 #: ../data/empathy.schemas.in.h:38
+#| msgid "_Show Contact List"
+msgid "Show contact list in rooms"
+msgstr "Mostrar lista de contactos en salas"
+
+#: ../data/empathy.schemas.in.h:39
 msgid "Show hint about closing the main window"
 msgstr "Mostrar consejo sobre cómo cerrar la ventana principal"
 
-#: ../data/empathy.schemas.in.h:39
+#: ../data/empathy.schemas.in.h:40
 msgid "Show offline contacts"
 msgstr "Mostrar contactos no conectados"
 
-#: ../data/empathy.schemas.in.h:40
+#: ../data/empathy.schemas.in.h:41
 msgid "Spell checking languages"
 msgstr "Idiomas para revisión ortográfica"
 
-#: ../data/empathy.schemas.in.h:41
+#: ../data/empathy.schemas.in.h:42
 msgid "The default folder to save file transfers in."
 msgstr "La carpeta predeterminada donde guardar los archivos transferidos."
 
-#: ../data/empathy.schemas.in.h:42
+#: ../data/empathy.schemas.in.h:43
 msgid "The last directory that an avatar image was chosen from."
 msgstr "Último directorio del que fue elegido un avatar."
 
-#: ../data/empathy.schemas.in.h:43
+#: ../data/empathy.schemas.in.h:44
 msgid "The theme that is used to display the conversation in chat windows."
 msgstr ""
 "El tema que se usará para mostrar la conversación en las ventanas de chat."
 
-#: ../data/empathy.schemas.in.h:44
+#: ../data/empathy.schemas.in.h:45
 msgid "Use graphical smileys"
 msgstr "Usar emoticonos gráficos"
 
-#: ../data/empathy.schemas.in.h:45
+#: ../data/empathy.schemas.in.h:46
 msgid "Use notification sounds"
 msgstr "Usar sonidos de notificación"
 
-#: ../data/empathy.schemas.in.h:46
+#: ../data/empathy.schemas.in.h:47
 msgid "Use theme for chat rooms"
 msgstr "Usar tema para salas de chat"
 
-#: ../data/empathy.schemas.in.h:47
+#: ../data/empathy.schemas.in.h:48
 msgid "Whether or not Empathy can publish the user's location to his contacts."
 msgstr ""
 "Indica si Empathy puede publicar la ubicación del usuario a sus contactos."
 
-#: ../data/empathy.schemas.in.h:48
+#: ../data/empathy.schemas.in.h:49
 msgid "Whether or not Empathy can use the GPS to guess the location."
 msgstr "Indica si Empathy puede usar el GPS para deducir la ubicación."
 
-#: ../data/empathy.schemas.in.h:49
+#: ../data/empathy.schemas.in.h:50
 msgid ""
 "Whether or not Empathy can use the cellular network to guess the location."
 msgstr ""
 "Indica si Empathy puede usar la red telefónica móvil para deducir la "
 "ubicación."
 
-#: ../data/empathy.schemas.in.h:50
+#: ../data/empathy.schemas.in.h:51
 msgid "Whether or not Empathy can use the network to guess the location."
 msgstr "Indica si Empathy puede usar la red para deducir la ubicación."
 
-#: ../data/empathy.schemas.in.h:51
+#: ../data/empathy.schemas.in.h:52
 msgid ""
 "Whether or not Empathy has asked about importing accounts from other "
 "programs."
@@ -249,7 +253,7 @@ msgstr ""
 "Indica si Empathy ha preguntado acerca de importar cuentas de otros "
 "programas."
 
-#: ../data/empathy.schemas.in.h:52
+#: ../data/empathy.schemas.in.h:53
 msgid ""
 "Whether or not Empathy should automatically log in to your accounts on "
 "startup."
@@ -257,7 +261,7 @@ msgstr ""
 "Indica si Empathy debe iniciar sesión en sus cuentas automáticamente al "
 "inicio."
 
-#: ../data/empathy.schemas.in.h:53
+#: ../data/empathy.schemas.in.h:54
 msgid ""
 "Whether or not Empathy should reduce the location's accuracy for privacy "
 "reasons."
@@ -265,7 +269,7 @@ msgstr ""
 "Indica si Empathy debería reducir la precisión de la ubicación por motivos "
 "de privacidad."
 
-#: ../data/empathy.schemas.in.h:54
+#: ../data/empathy.schemas.in.h:55
 msgid ""
 "Whether or not Empathy should use the avatar of the contact as the chat "
 "window icon."
@@ -273,14 +277,14 @@ msgstr ""
 "Indica si Empathy debería usar el avatar del contacto como el icono de la "
 "ventana de chat."
 
-#: ../data/empathy.schemas.in.h:55
+#: ../data/empathy.schemas.in.h:56
 msgid ""
 "Whether or not the Salut account has been created on the first Empathy run."
 msgstr ""
 "Indica si la cuenta Salut se ha creado cuando ejecutó por primera vez "
 "Empathy."
 
-#: ../data/empathy.schemas.in.h:56
+#: ../data/empathy.schemas.in.h:57
 msgid ""
 "Whether or not the network manager should be used to automatically "
 "disconnect/reconnect."
@@ -288,7 +292,7 @@ msgstr ""
 "Indica si se debe usar el gestor de la red para desconectarse/reconectarse "
 "automáticamente."
 
-#: ../data/empathy.schemas.in.h:57
+#: ../data/empathy.schemas.in.h:58
 msgid ""
 "Whether or not to check words typed against the languages you want to check "
 "with."
@@ -296,21 +300,21 @@ msgstr ""
 "Indica si se deben revisar las palabras tecleadas con respecto a los idiomas "
 "con los que quiere comprobarlo."
 
-#: ../data/empathy.schemas.in.h:58
+#: ../data/empathy.schemas.in.h:59
 msgid ""
 "Whether or not to convert smileys into graphical images in conversations."
 msgstr ""
 "Indica si se deben convertir los emoticonos en imágenes gráficas en las "
 "conversaciones."
 
-#: ../data/empathy.schemas.in.h:59
+#: ../data/empathy.schemas.in.h:60
 msgid ""
 "Whether or not to play a sound to notify for contacts logging in the network."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar los inicios de sesión "
 "de los contactos en la red."
 
-#: ../data/empathy.schemas.in.h:60
+#: ../data/empathy.schemas.in.h:61
 msgid ""
 "Whether or not to play a sound to notify for contacts logging off the "
 "network."
@@ -318,40 +322,40 @@ msgstr ""
 "Indica si se debe reproducir un sonido para notificar las finalizaciones de "
 "sesión de los contactos en la red."
 
-#: ../data/empathy.schemas.in.h:61
+#: ../data/empathy.schemas.in.h:62
 msgid "Whether or not to play a sound to notify for events."
 msgstr "Indica si se debe reproducir un sonido para notificar eventos."
 
-#: ../data/empathy.schemas.in.h:62
+#: ../data/empathy.schemas.in.h:63
 msgid "Whether or not to play a sound to notify for incoming messages."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar mensajes entrantes."
 
-#: ../data/empathy.schemas.in.h:63
+#: ../data/empathy.schemas.in.h:64
 msgid "Whether or not to play a sound to notify for new conversations."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar conversaciones nuevas."
 
-#: ../data/empathy.schemas.in.h:64
+#: ../data/empathy.schemas.in.h:65
 msgid "Whether or not to play a sound to notify for outgoing messages."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar mensajes salientes."
 
-#: ../data/empathy.schemas.in.h:65
+#: ../data/empathy.schemas.in.h:66
 msgid "Whether or not to play a sound when logging in a network."
 msgstr "Indica si se debe reproducir un sonido al iniciar sesión en una red."
 
-#: ../data/empathy.schemas.in.h:66
+#: ../data/empathy.schemas.in.h:67
 msgid "Whether or not to play a sound when logging off a network."
 msgstr "Indica si se debe reproducir un sonido al finalizar sesión en una red."
 
-#: ../data/empathy.schemas.in.h:67
+#: ../data/empathy.schemas.in.h:68
 msgid "Whether or not to play sound notifications when away or busy."
 msgstr ""
 "Indica si se deben reproducir sonidos de notificaciones cuando se esté "
 "ausente u ocupado."
 
-#: ../data/empathy.schemas.in.h:68
+#: ../data/empathy.schemas.in.h:69
 msgid ""
 "Whether or not to show a popup notification when receiving a new message "
 "even if the chat is already opened, but not focused."
@@ -359,14 +363,14 @@ msgstr ""
 "Indica si de deben mostrar notificaciones emergentes al recibir un mensaje "
 "nuevo incluso si la ventana de chat ya está abierta pero no tiene el foco."
 
-#: ../data/empathy.schemas.in.h:69
+#: ../data/empathy.schemas.in.h:70
 msgid ""
 "Whether or not to show a popup notification when receiving a new message."
 msgstr ""
 "Indica si se deben mostrar notificaciones emergentes al recibir un mensaje "
 "nuevo."
 
-#: ../data/empathy.schemas.in.h:70
+#: ../data/empathy.schemas.in.h:71
 msgid ""
 "Whether or not to show avatars for contacts in the contact list and chat "
 "windows."
@@ -374,19 +378,24 @@ msgstr ""
 "Indica si se debe mostrar los avatares para los contactos en la lista de "
 "contactos y ventanas de chat."
 
-#: ../data/empathy.schemas.in.h:71
+#: ../data/empathy.schemas.in.h:72
 msgid "Whether or not to show contacts that are offline in the contact list."
 msgstr ""
 "Indica si se debe mostrar los contactos que están desconectados en la lista "
 "de contactos."
 
-#: ../data/empathy.schemas.in.h:72
+#: ../data/empathy.schemas.in.h:73
 msgid "Whether or not to show popup notifications when away or busy."
 msgstr ""
 "Indica si se deben mostrar las notificaciones emergentes cuando se esté "
 "ausente u ocupado."
 
-#: ../data/empathy.schemas.in.h:73
+#: ../data/empathy.schemas.in.h:74
+#| msgid "Whether to show the contact list in compact mode or not."
+msgid "Whether or not to show the contact list in chat rooms."
+msgstr "Indica si se debe mostrar la lista de contactos en salas de chat."
+
+#: ../data/empathy.schemas.in.h:75
 msgid ""
 "Whether or not to show the message dialog about closing the main window with "
 "the 'x' button in the title bar."
@@ -394,15 +403,15 @@ msgstr ""
 "Indica si se debe mostrar un mensaje de diálogo sobre cómo cerrar la ventana "
 "principal con el botón 'x' en la barra de título."
 
-#: ../data/empathy.schemas.in.h:74
+#: ../data/empathy.schemas.in.h:76
 msgid "Whether to show the contact list in compact mode or not."
 msgstr "Indica si se debe mostrar la lista de contactos en modo compacto."
 
-#: ../data/empathy.schemas.in.h:75
+#: ../data/empathy.schemas.in.h:77
 msgid "Whether to use the theme for chat rooms or not."
 msgstr "Indica si se debe usar el tema para salas de chat."
 
-#: ../data/empathy.schemas.in.h:76
+#: ../data/empathy.schemas.in.h:78
 msgid ""
 "Which criterium to use when sorting the contact list. Default is to use sort "
 "by the contact's name with the value \"name\". A value of \"state\" will "
@@ -420,7 +429,15 @@ msgstr "El «hash» del archivo recibido y del enviado no coinciden"
 msgid "File transfer not supported by remote contact"
 msgstr "El contacto remoto no soporta la transferencia de archivos"
 
-#: ../libempathy/empathy-tp-contact-list.c:757 ../src/empathy.c:286
+#: ../libempathy/empathy-ft-handler.c:1156
+msgid "The selected file is not a regular file"
+msgstr "El archivo seleccionado no es un archivo regular"
+
+#: ../libempathy/empathy-ft-handler.c:1165
+msgid "The selected file is empty"
+msgstr "El archivo seleccionado está vacío"
+
+#: ../libempathy/empathy-tp-contact-list.c:757 ../src/empathy.c:287
 msgid "People nearby"
 msgstr "Gente cerca"
 
@@ -506,12 +523,21 @@ msgstr[1] "hace %d días"
 
 #: ../libempathy/empathy-time.c:157
 #, c-format
+#| msgid "%d second ago"
+#| msgid_plural "%d seconds ago"
+msgid "%d week ago"
+msgid_plural "%d weeks ago"
+msgstr[0] "hace %d semana"
+msgstr[1] "hace %d semanas"
+
+#: ../libempathy/empathy-time.c:162
+#, c-format
 msgid "%d month ago"
 msgid_plural "%d months ago"
 msgstr[0] "hace %d mes"
 msgstr[1] "hace %d meses"
 
-#: ../libempathy/empathy-time.c:162
+#: ../libempathy/empathy-time.c:167
 msgid "in the future"
 msgstr "en el futuro"
 
@@ -534,8 +560,9 @@ msgstr "%s:"
 #: ../libempathy-gtk/empathy-account-widget-salut.ui.h:1
 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:1
 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:1
-msgid "<b>Advanced</b>"
-msgstr "<b>Avanzado</b>"
+#| msgid "<b>Advanced</b>"
+msgid "Advanced"
+msgstr "Avanzado"
 
 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:2
 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:3
@@ -571,7 +598,7 @@ msgid "_Server:"
 msgstr "_Servidor:"
 
 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:2
-#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:2
 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:2
 msgid "Login I_D:"
 msgstr "_ID de sesión:"
@@ -590,44 +617,42 @@ msgid "New Network"
 msgstr "Red nueva"
 
 #: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1
-msgid "<b>Network</b>"
-msgstr "<b>Red</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
-msgid "<b>Servers</b>"
-msgstr "<b>Servidores</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
 msgid "Charset:"
 msgstr "Conjunto de caracteres:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
 msgid "Network"
 msgstr "Red"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
 msgid "Network:"
 msgstr "Red:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
 msgid "Nickname:"
 msgstr "Apodo:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
 msgid "Password:"
 msgstr "Contraseña:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
 msgid "Quit message:"
 msgstr "Mensaje de salida:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
 msgid "Real name:"
 msgstr "Nombre real:"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:2
-msgid "<b>Override server settings</b>"
-msgstr "<b>Sobreescribir los ajustes del servidor</b>"
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8
+#| msgid "Server"
+msgid "Servers"
+msgstr "Servidores"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+#| msgid "<b>Override server settings</b>"
+msgid "Override server settings"
+msgstr "Sobreescribir los ajustes del servidor"
 
 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:5
 msgid "Pri_ority:"
@@ -735,96 +760,96 @@ msgstr "Todos los archivos"
 msgid "Click to enlarge"
 msgstr "Pulse para agrandar"
 
-#: ../libempathy-gtk/empathy-chat.c:178
+#: ../libempathy-gtk/empathy-chat.c:186
 msgid "Failed to reconnect this chat"
 msgstr "Falló al reconectar a este chat"
 
-#: ../libempathy-gtk/empathy-chat.c:396
+#: ../libempathy-gtk/empathy-chat.c:404
 msgid "Unsupported command"
 msgstr "Comando no soportado"
 
-#: ../libempathy-gtk/empathy-chat.c:531
+#: ../libempathy-gtk/empathy-chat.c:539
 msgid "offline"
 msgstr "desconectado"
 
-#: ../libempathy-gtk/empathy-chat.c:534
+#: ../libempathy-gtk/empathy-chat.c:542
 msgid "invalid contact"
 msgstr "contacto no válido"
 
-#: ../libempathy-gtk/empathy-chat.c:537
+#: ../libempathy-gtk/empathy-chat.c:545
 msgid "permission denied"
 msgstr "permiso denegado"
 
-#: ../libempathy-gtk/empathy-chat.c:540
+#: ../libempathy-gtk/empathy-chat.c:548
 msgid "too long message"
 msgstr "mensaje demasiado largo"
 
-#: ../libempathy-gtk/empathy-chat.c:543
+#: ../libempathy-gtk/empathy-chat.c:551
 msgid "not implemented"
 msgstr "no implementado"
 
-#: ../libempathy-gtk/empathy-chat.c:546
+#: ../libempathy-gtk/empathy-chat.c:554
 msgid "unknown"
 msgstr "desconocido"
 
-#: ../libempathy-gtk/empathy-chat.c:550
+#: ../libempathy-gtk/empathy-chat.c:558
 #, c-format
 msgid "Error sending message '%s': %s"
 msgstr "Error al enviar el mensaje «%s»: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:580
+#: ../libempathy-gtk/empathy-chat.c:588
 #, c-format
 msgid "Topic set to: %s"
 msgstr "El tema se ha establecido a: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:582
+#: ../libempathy-gtk/empathy-chat.c:590
 msgid "No topic defined"
 msgstr "No se ha definido el tema"
 
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:959
 msgid "(No Suggestions)"
 msgstr "(Sin sugerencias)"
 
-#: ../libempathy-gtk/empathy-chat.c:1005
+#: ../libempathy-gtk/empathy-chat.c:1013
 msgid "Insert Smiley"
 msgstr "Insertar emoticono"
 
 #. send button
-#: ../libempathy-gtk/empathy-chat.c:1023
+#: ../libempathy-gtk/empathy-chat.c:1031
 #: ../libempathy-gtk/empathy-ui-utils.c:1476
 msgid "_Send"
 msgstr "E_nviar"
 
-#: ../libempathy-gtk/empathy-chat.c:1057
+#: ../libempathy-gtk/empathy-chat.c:1065
 msgid "_Spelling Suggestions"
 msgstr "_Sugerencias ortográficas"
 
-#: ../libempathy-gtk/empathy-chat.c:1171
+#: ../libempathy-gtk/empathy-chat.c:1179
 #, c-format
 msgid "%s has joined the room"
 msgstr "%s ha entrado en la sala"
 
-#: ../libempathy-gtk/empathy-chat.c:1174
+#: ../libempathy-gtk/empathy-chat.c:1182
 #, c-format
 msgid "%s has left the room"
 msgstr "%s ha dejado la sala"
 
-#: ../libempathy-gtk/empathy-chat.c:1289 ../src/empathy-call-window.c:1107
+#: ../libempathy-gtk/empathy-chat.c:1313 ../src/empathy-call-window.c:1199
 msgid "Disconnected"
 msgstr "Desconectado"
 
-#: ../libempathy-gtk/empathy-chat.c:1700
+#: ../libempathy-gtk/empathy-chat.c:1742
 msgid "Connected"
 msgstr "Conectado"
 
-#: ../libempathy-gtk/empathy-chat.c:1750
+#: ../libempathy-gtk/empathy-chat.c:1792
 #: ../libempathy-gtk/empathy-log-window.c:501
 msgid "Conversation"
 msgstr "Conversación"
 
-#: ../libempathy-gtk/empathy-chat.ui.h:1
-msgid "<b>Topic:</b>"
-msgstr "<b>Tema:</b>"
+#: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:471
+msgid "Topic:"
+msgstr "Tema:"
 
 #: ../libempathy-gtk/empathy-chat-text-view.c:316
 msgid "_Copy Link Address"
@@ -1054,52 +1079,56 @@ msgid "%B %e, %Y at %R UTC"
 msgstr "%e de %B de %Y a las %R UTC"
 
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:1
-msgid "<b>Client Information</b>"
-msgstr "<b>Información del cliente</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-msgid "<b>Contact Details</b>"
-msgstr "<b>Detalles del contacto</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-msgid "<b>Contact</b>"
-msgstr "<b>Contacto</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:4
-msgid "<b>Groups</b>"
-msgstr "<b>Grupos</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:5
 msgid "<b>Location</b> at (date)\t"
 msgstr "<b>Ubicación</b> en (fecha)\t"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:6
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
 #: ../libempathy-gtk/empathy-new-message-dialog.ui.h:1
 #: ../src/empathy-chatrooms-window.ui.h:1
 #: ../src/empathy-new-chatroom-dialog.ui.h:1
 msgid "Account:"
 msgstr "Cuenta:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:7
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
 msgid "Alias:"
 msgstr "Apodo:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:4
 msgid "Birthday:"
 msgstr "Cumpleaños:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:9
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:5
+#| msgid "<b>Client Information</b>"
+msgid "Client Information"
+msgstr "Información del cliente"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:6
 msgid "Client:"
 msgstr "Cliente:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:10
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:7
+#: ../src/empathy-main-window.c:888
+msgid "Contact"
+msgstr "Contacto"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
+#| msgid "<b>Contact Details</b>"
+msgid "Contact Details"
+msgstr "Detalles del contacto"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:9
 msgid "Email:"
 msgstr "Correo-e:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:11
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:10
 msgid "Fullname:"
 msgstr "Nombre completo:"
 
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:11
+#| msgid "Group"
+msgid "Groups"
+msgstr "Grupos"
+
 #. Identifier to connect to Instant Messaging network
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
 msgid "Identifier:"
@@ -1216,12 +1245,12 @@ msgstr "Pulse para hacer este estado uno favorito"
 msgid "Set status"
 msgstr "Establecer estado"
 
-#: ../libempathy-gtk/empathy-presence-chooser.c:778
+#: ../libempathy-gtk/empathy-presence-chooser.c:782
 msgid "Set your presence and current status"
 msgstr "Establecer su presencia y estado actual"
 
 #. Custom messages
-#: ../libempathy-gtk/empathy-presence-chooser.c:1013
+#: ../libempathy-gtk/empathy-presence-chooser.c:1017
 msgid "Custom messages..."
 msgstr "Mensajes personalizados…"
 
@@ -1542,23 +1571,23 @@ msgstr "Presencia"
 msgid "Set your own presence"
 msgstr "Establezca su propia presencia"
 
-#: ../src/empathy.c:476
+#: ../src/empathy.c:478
 msgid "Don't connect on startup"
 msgstr "No conectarse automáticamente al inicio"
 
-#: ../src/empathy.c:480
+#: ../src/empathy.c:482
 msgid "Don't show the contact list on startup"
 msgstr "No mostrar la lista de contactos al inicio"
 
-#: ../src/empathy.c:484
+#: ../src/empathy.c:486
 msgid "Show the accounts dialog"
 msgstr "Mostrar el diálogo de las cuentas"
 
-#: ../src/empathy.c:496
+#: ../src/empathy.c:498
 msgid "- Empathy Instant Messenger"
 msgstr "- Mensajería instantánea Empathy"
 
-#: ../src/empathy-about-dialog.c:84
+#: ../src/empathy-about-dialog.c:83
 msgid ""
 "Empathy is free software; you can redistribute it and/or modify it under the "
 "terms of the GNU General Public License as published by the Free Software "
@@ -1570,7 +1599,7 @@ msgstr ""
 "Foundation; ya sea en la versión 2 de la Licencia, o (a su elección) "
 "cualquier versión posterior."
 
-#: ../src/empathy-about-dialog.c:88
+#: ../src/empathy-about-dialog.c:87
 msgid ""
 "Empathy is distributed in the hope that it will be useful, but WITHOUT ANY "
 "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS "
@@ -1582,7 +1611,7 @@ msgstr ""
 "PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública General de GNU para "
 "más detalles."
 
-#: ../src/empathy-about-dialog.c:92
+#: ../src/empathy-about-dialog.c:91
 msgid ""
 "You should have received a copy of the GNU General Public License along with "
 "Empathy; if not, write to the Free Software Foundation, Inc., 51 Franklin "
@@ -1592,11 +1621,11 @@ msgstr ""
 "con Gossip ; si no, escriba a la Free Software Foundation, Inc., 51 Franklin "
 "Street, Fifth Floor, Boston, MA 02110-130159 EE. UU."
 
-#: ../src/empathy-about-dialog.c:120
+#: ../src/empathy-about-dialog.c:119
 msgid "An Instant Messaging client for GNOME"
 msgstr "Un cliente de mensajería instantánea para GNOME"
 
-#: ../src/empathy-about-dialog.c:126
+#: ../src/empathy-about-dialog.c:125
 msgid "translator-credits"
 msgstr "Jorge González <jorgegonz@svn.gnome.org>, 2007-2009"
 
@@ -1604,7 +1633,7 @@ msgstr "Jorge González <jorgegonz@svn.gnome.org>, 2007-2009"
 msgid "Enabled"
 msgstr "Activado"
 
-#: ../src/empathy-accounts-dialog.c:403 ../src/empathy-accounts-dialog.ui.h:4
+#: ../src/empathy-accounts-dialog.c:403 ../src/empathy-accounts-dialog.ui.h:1
 msgid "Accounts"
 msgstr "Cuentas"
 
@@ -1636,27 +1665,35 @@ msgstr ""
 "\n"
 "Si decidiera volver a añadir la cuenta más tarde, estarán aún disponibles."
 
-#: ../src/empathy-accounts-dialog.ui.h:1
-msgid "<b>Add Account</b>"
-msgstr "<b>Añadir cuenta</b>"
-
 #: ../src/empathy-accounts-dialog.ui.h:2
-msgid "<b>No protocol installed</b>"
-msgstr "<b>No hay protocolos instalados</b>"
+#| msgid "Account"
+msgid "Add Account"
+msgstr "Añadir cuenta"
 
 #: ../src/empathy-accounts-dialog.ui.h:3
-msgid "<b>Settings</b>"
-msgstr "<b>Configuración</b>"
-
-#: ../src/empathy-accounts-dialog.ui.h:5
 msgid "Cr_eate"
 msgstr "Cr_ear"
 
-#: ../src/empathy-accounts-dialog.ui.h:6
+#: ../src/empathy-accounts-dialog.ui.h:4
+#| msgid "Email:"
+msgid "Gmail"
+msgstr "Gmail"
+
+#: ../src/empathy-accounts-dialog.ui.h:5
 msgid "Import Accounts..."
 msgstr "Importar cuentas…"
 
+#: ../src/empathy-accounts-dialog.ui.h:6
+#| msgid "<b>No protocol installed</b>"
+msgid "No protocol installed"
+msgstr "No hay protocolos instalados"
+
 #: ../src/empathy-accounts-dialog.ui.h:7
+#| msgid "<b>Settings</b>"
+msgid "Settings"
+msgstr "Ajustes"
+
+#: ../src/empathy-accounts-dialog.ui.h:8
 msgid ""
 "To add a new account, you first have to install a backend for each protocol "
 "you want to use."
@@ -1664,19 +1701,19 @@ msgstr ""
 "Para añadir una nueva cuenta debe instalar primero un «backend» para cada "
 "protocolo que quiera usar."
 
-#: ../src/empathy-accounts-dialog.ui.h:8
+#: ../src/empathy-accounts-dialog.ui.h:9
 msgid "Type:"
 msgstr "Tipo:"
 
-#: ../src/empathy-accounts-dialog.ui.h:9
+#: ../src/empathy-accounts-dialog.ui.h:10
 msgid "_Add..."
 msgstr "_Añadir…"
 
-#: ../src/empathy-accounts-dialog.ui.h:10
+#: ../src/empathy-accounts-dialog.ui.h:11
 msgid "_Create a new account"
 msgstr "_Crear una cuenta nueva"
 
-#: ../src/empathy-accounts-dialog.ui.h:11
+#: ../src/empathy-accounts-dialog.ui.h:12
 msgid "_Reuse an existing account"
 msgstr "_Usar una cuenta ya existente"
 
@@ -1684,49 +1721,49 @@ msgstr "_Usar una cuenta ya existente"
 msgid "Connecting..."
 msgstr "Conectando…"
 
-#: ../src/empathy-call-window.c:405
+#: ../src/empathy-call-window.c:415
 msgid "Contrast"
 msgstr "Contraste"
 
-#: ../src/empathy-call-window.c:408
+#: ../src/empathy-call-window.c:418
 msgid "Brightness"
 msgstr "Brillo"
 
-#: ../src/empathy-call-window.c:411
+#: ../src/empathy-call-window.c:421
 msgid "Gamma"
 msgstr "Gamma"
 
-#: ../src/empathy-call-window.c:516
+#: ../src/empathy-call-window.c:526
 msgid "Volume"
 msgstr "Volumen"
 
-#: ../src/empathy-call-window.c:697
+#: ../src/empathy-call-window.c:728
 msgid "_Sidebar"
 msgstr "Barra _lateral"
 
-#: ../src/empathy-call-window.c:716
+#: ../src/empathy-call-window.c:747
 msgid "Dialpad"
 msgstr "Teclado de llamada"
 
-#: ../src/empathy-call-window.c:722
+#: ../src/empathy-call-window.c:753
 msgid "Audio input"
 msgstr "Entrada de sonido"
 
-#: ../src/empathy-call-window.c:726
+#: ../src/empathy-call-window.c:757
 msgid "Video input"
 msgstr "Entrada de vídeo"
 
-#: ../src/empathy-call-window.c:789
+#: ../src/empathy-call-window.c:820
 #, c-format
 msgid "Call with %s"
 msgstr "Llamar con %s"
 
-#: ../src/empathy-call-window.c:860
+#: ../src/empathy-call-window.c:889
 msgid "Call"
 msgstr "Llamar"
 
 #. Translators: number of minutes:seconds the caller has been connected
-#: ../src/empathy-call-window.c:1203
+#: ../src/empathy-call-window.c:1308
 #, c-format
 msgid "Connected — %d:%02dm"
 msgstr "Conectado — %d:%02dm"
@@ -1759,24 +1796,15 @@ msgstr "_Llamar"
 msgid "_View"
 msgstr "_Ver"
 
-#: ../src/empathy-chat-window.c:342
+#: ../src/empathy-chat-window.c:343
 #, c-format
 msgid "Conversations (%d)"
 msgstr "Conversaciones (%d)"
 
-#: ../src/empathy-chat-window.c:470
-msgid "Topic:"
-msgstr "Tema:"
-
-#: ../src/empathy-chat-window.c:474
+#: ../src/empathy-chat-window.c:475
 msgid "Typing a message."
 msgstr "Tecleando un mensaje."
 
-#: ../src/empathy-chat-window.c:935 ../src/empathy-event-manager.c:429
-#, c-format
-msgid "New message from %s"
-msgstr "Nuevo mensaje de %s"
-
 #: ../src/empathy-chatrooms-window.c:258
 msgid "Name"
 msgstr "Nombre"
@@ -1810,58 +1838,58 @@ msgstr "_Rechazar"
 msgid "_Answer"
 msgstr "Re_spuesta"
 
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:505
 #, c-format
 msgid "Incoming call from %s"
 msgstr "Llamada entrante de %s"
 
-#: ../src/empathy-event-manager.c:547
+#: ../src/empathy-event-manager.c:545
 #, c-format
 msgid "%s is offering you an invitation"
 msgstr "%s le está ofreciendo una invitación"
 
-#: ../src/empathy-event-manager.c:553
+#: ../src/empathy-event-manager.c:551
 msgid "An external application will be started to handle it."
 msgstr "Se iniciará una aplicación externa para manejarla."
 
-#: ../src/empathy-event-manager.c:558
+#: ../src/empathy-event-manager.c:556
 msgid "You don't have the needed external application to handle it."
 msgstr "No tiene la aplicación externa necesaria para manejarla."
 
-#: ../src/empathy-event-manager.c:685
+#: ../src/empathy-event-manager.c:683
 msgid "Room invitation"
 msgstr "Invitación a una sala"
 
-#: ../src/empathy-event-manager.c:688
+#: ../src/empathy-event-manager.c:686
 #, c-format
 msgid "%s is inviting you to join %s"
 msgstr "%s le está invitando a unirse a %s"
 
-#: ../src/empathy-event-manager.c:696
+#: ../src/empathy-event-manager.c:694
 msgid "_Decline"
 msgstr "_Rechazar"
 
-#: ../src/empathy-event-manager.c:701
+#: ../src/empathy-event-manager.c:699
 #: ../src/empathy-new-chatroom-dialog.ui.h:7
 msgid "_Join"
 msgstr "_Unirse"
 
-#: ../src/empathy-event-manager.c:740
+#: ../src/empathy-event-manager.c:738
 #, c-format
 msgid "%s invited you to join %s"
 msgstr "%s le ha invitado a unirse a %s"
 
-#: ../src/empathy-event-manager.c:766
+#: ../src/empathy-event-manager.c:764
 #, c-format
 msgid "Incoming file transfer from %s"
 msgstr "Transferencia de archivo entrante de %s"
 
-#: ../src/empathy-event-manager.c:946
+#: ../src/empathy-event-manager.c:944
 #, c-format
 msgid "Subscription requested by %s"
 msgstr "Petición de suscripción de %s"
 
-#: ../src/empathy-event-manager.c:950
+#: ../src/empathy-event-manager.c:948
 #, c-format
 msgid ""
 "\n"
@@ -1974,7 +2002,8 @@ msgid "Remaining"
 msgstr "Restantes"
 
 #: ../src/empathy-ft-manager.ui.h:1
-msgid "File transfers"
+#| msgid "_File Transfers"
+msgid "File Transfers"
 msgstr "Transferencias de archivos"
 
 #: ../src/empathy-ft-manager.ui.h:2
@@ -2068,15 +2097,11 @@ msgstr "Error del certificado"
 msgid "Unknown error"
 msgstr "Error desconocido"
 
-#: ../src/empathy-main-window.c:888
-msgid "Contact"
-msgstr "Contacto"
-
 #: ../src/empathy-main-window.c:1220
 msgid "Show and edit accounts"
 msgstr "Mostrar y editar cuentas"
 
-#: ../src/empathy-main-window.ui.h:1
+#: ../src/empathy-main-window.ui.h:1 ../src/empathy-preferences.ui.h:10
 msgid "Contact List"
 msgstr "Lista de contactos"
 
@@ -2217,158 +2242,162 @@ msgstr "Lista de salas"
 msgid "_Room:"
 msgstr "_Sala:"
 
-#: ../src/empathy-preferences.c:158
+#: ../src/empathy-preferences.c:159
 msgid "Message received"
 msgstr "Mensaje recibido"
 
-#: ../src/empathy-preferences.c:159
+#: ../src/empathy-preferences.c:160
 msgid "Message sent"
 msgstr "Mensaje enviado"
 
-#: ../src/empathy-preferences.c:160
+#: ../src/empathy-preferences.c:161
 msgid "New conversation"
 msgstr "Conversación nueva"
 
-#: ../src/empathy-preferences.c:161
+#: ../src/empathy-preferences.c:162
 msgid "Contact goes online"
 msgstr "El contacto se conecta"
 
-#: ../src/empathy-preferences.c:162
+#: ../src/empathy-preferences.c:163
 msgid "Contact goes offline"
 msgstr "El contacto se desconecta"
 
-#: ../src/empathy-preferences.c:163
+#: ../src/empathy-preferences.c:164
 msgid "Account connected"
 msgstr "Cuenta conectada"
 
-#: ../src/empathy-preferences.c:164
+#: ../src/empathy-preferences.c:165
 msgid "Account disconnected"
 msgstr "Cuenta desconectada"
 
-#: ../src/empathy-preferences.c:427
+#: ../src/empathy-preferences.c:432
 msgid "Language"
 msgstr "Idioma"
 
 #: ../src/empathy-preferences.ui.h:1
-msgid "<b>Appearance</b>"
-msgstr "<b>Apariencia</b>"
-
-#: ../src/empathy-preferences.ui.h:2
-msgid "<b>Behavior</b>"
-msgstr "<b>Comportamiento</b>"
-
-#: ../src/empathy-preferences.ui.h:3
-msgid "<b>Contact List</b>"
-msgstr "<b>Lista de contactos</b>"
-
-#: ../src/empathy-preferences.ui.h:4
-msgid "<b>Enable spell checking for languages:</b>"
-msgstr "<b>Activar la revisión ortográfica para idiomas:</b>"
-
-#: ../src/empathy-preferences.ui.h:5
-msgid "<b>Geoclue Settings</b>"
-msgstr "<b>Configuración de Geoclue</b>"
-
-#: ../src/empathy-preferences.ui.h:6
-msgid "<b>Play sound for events</b>"
-msgstr "<b>Reproducir sonido para eventos</b>"
-
-#: ../src/empathy-preferences.ui.h:7
-msgid "<b>Privacy</b>"
-msgstr "<b>Privacidad</b>"
-
-#: ../src/empathy-preferences.ui.h:8
-msgid ""
-"<small>Reduced location accuracy means that nothing more precise than your "
-"city, state and country will be published.  GPS coordinates will have a "
-"random value added (&#xB1;0.25&#xB0;).</small>"
-msgstr ""
-"<small>Reducir la precisión de la ubicación significa que no se publicará "
-"nada más preciso que su ciudad, estado y país. Las coordenadas GPS tendrán "
-"un valor aleatorio añadido (&#xB1;0.25&#xB0;).</small>"
-
-#: ../src/empathy-preferences.ui.h:9
-msgid ""
-"<small>The list of languages reflects only the languages for which you have "
-"a dictionary installed.</small>"
-msgstr ""
-"<small>La lista de idiomas refleja sólo los idiomas para los cuales tiene un "
-"diccionario instalado.</small>"
-
-#: ../src/empathy-preferences.ui.h:10
-msgid "<span foreground=\"red\">Not a valid adium theme</span>"
-msgstr "<span foreground=\"red\">No es un tema adium válido</span>"
-
-#: ../src/empathy-preferences.ui.h:11
 msgid "Adium theme to use:"
 msgstr "Tema adium que usar:"
 
-#: ../src/empathy-preferences.ui.h:12
+#: ../src/empathy-preferences.ui.h:2
 msgid "Allow _GPS usage"
 msgstr "Permitir el usso de _GPS"
 
-#: ../src/empathy-preferences.ui.h:13
+#: ../src/empathy-preferences.ui.h:3
 msgid "Allow _cellphone usage"
 msgstr "Permitir el uso de teléfono _móvil"
 
-#: ../src/empathy-preferences.ui.h:14
+#: ../src/empathy-preferences.ui.h:4
 msgid "Allow _network usage"
 msgstr "Permitir el uso de la _red"
 
-#: ../src/empathy-preferences.ui.h:15
+#: ../src/empathy-preferences.ui.h:5
+#| msgid "<b>Appearance</b>"
+msgid "Appearance"
+msgstr "Apariencia"
+
+#: ../src/empathy-preferences.ui.h:6
 msgid "Automatically _connect on startup "
 msgstr "_Conectarse automáticamente al inicio"
 
-#: ../src/empathy-preferences.ui.h:16
+#: ../src/empathy-preferences.ui.h:7
 msgid "Avatars are user chosen images shown in the contact list"
 msgstr ""
 "Los avatares son imágenes elegidas por el usuario que se muestran en la "
 "lista de contactos"
 
-#: ../src/empathy-preferences.ui.h:17
+#: ../src/empathy-preferences.ui.h:8
+#| msgid "<b>Behavior</b>"
+msgid "Behavior"
+msgstr "Comportamiento"
+
+#: ../src/empathy-preferences.ui.h:9
 msgid "Chat Th_eme:"
 msgstr "_Tema del chat:"
 
-#: ../src/empathy-preferences.ui.h:18
+#: ../src/empathy-preferences.ui.h:11
 msgid "Disable notifications when _away or busy"
 msgstr "Desactivar notificaciones al _ausentarse o estar ocupado"
 
-#: ../src/empathy-preferences.ui.h:19
+#: ../src/empathy-preferences.ui.h:12
 msgid "Disable sounds when _away or busy"
 msgstr "Desactivar sonidos al _ausentarse o estar ocupado"
 
-#: ../src/empathy-preferences.ui.h:20
+#: ../src/empathy-preferences.ui.h:13
 msgid "Enable notifications when the _chat is not focused"
 msgstr "Activar notificaciones cuando el _chat no tenga el foco"
 
-#: ../src/empathy-preferences.ui.h:21
+#: ../src/empathy-preferences.ui.h:14
+#| msgid "<b>Enable spell checking for languages:</b>"
+msgid "Enable spell checking for languages:"
+msgstr "Activar la revisión ortográfica para idiomas:"
+
+#: ../src/empathy-preferences.ui.h:15
 msgid "General"
 msgstr "General"
 
-#: ../src/empathy-preferences.ui.h:22
+#: ../src/empathy-preferences.ui.h:16
+#| msgid "<b>Geoclue Settings</b>"
+msgid "Geoclue Settings"
+msgstr "Configuración de Geoclue"
+
+#: ../src/empathy-preferences.ui.h:17
 msgid "Location"
 msgstr "Ubicación"
 
-#: ../src/empathy-preferences.ui.h:23
+#: ../src/empathy-preferences.ui.h:18
+#| msgid "<span foreground=\"red\">Not a valid adium theme</span>"
+msgid "Not a valid adium theme"
+msgstr "No es un tema adium válido"
+
+#: ../src/empathy-preferences.ui.h:19
 msgid "Notifications"
 msgstr "Notificaciones"
 
-#: ../src/empathy-preferences.ui.h:24
+#: ../src/empathy-preferences.ui.h:20
+#| msgid "<b>Play sound for events</b>"
+msgid "Play sound for events"
+msgstr "Reproducir sonido para eventos"
+
+#: ../src/empathy-preferences.ui.h:21
 msgid "Preferences"
 msgstr "Preferencias"
 
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:22
+#| msgid "<b>Privacy</b>"
+msgid "Privacy"
+msgstr "Privacidad"
+
+#: ../src/empathy-preferences.ui.h:23
+#| msgid ""
+#| "<small>Reduced location accuracy means that nothing more precise than "
+#| "your city, state and country will be published.  GPS coordinates will "
+#| "have a random value added (&#xB1;0.25&#xB0;).</small>"
+msgid ""
+"Reduced location accuracy means that nothing more precise than your city, "
+"state and country will be published.  GPS coordinates will have a random "
+"value added (&#xB1;0.25&#xB0;)."
+msgstr ""
+"Reducir la precisión de la ubicación significa que no se publicará nada más "
+"preciso que su ciudad, estado y país. Las coordenadas GPS tendrán un valor "
+"aleatorio añadido (&#xB1;0.25&#xB0;)."
+
+#: ../src/empathy-preferences.ui.h:24
 msgid "Show _avatars"
 msgstr "Mostrar _avatares"
 
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:25
 msgid "Show _smileys as images"
 msgstr "Mostrar los _emoticonos como imágenes"
 
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:26
 msgid "Show co_mpact contact list"
 msgstr "Mostrar lista de contactos co_mpacta"
 
+#: ../src/empathy-preferences.ui.h:27
+#| msgid "_Show Contact List"
+msgid "Show contact _list in rooms"
+msgstr "Mostrar _lista de contactos en salas"
+
 #: ../src/empathy-preferences.ui.h:28
 msgid "Sort by _name"
 msgstr "Ordenar por _nombre"
@@ -2386,8 +2415,15 @@ msgid "Spell Checking"
 msgstr "Revisión ortográfica"
 
 #: ../src/empathy-preferences.ui.h:32
-msgid "Sélectionner un dossier"
-msgstr "Seleccionar una carpeta"
+#| msgid ""
+#| "<small>The list of languages reflects only the languages for which you "
+#| "have a dictionary installed.</small>"
+msgid ""
+"The list of languages reflects only the languages for which you have a "
+"dictionary installed."
+msgstr ""
+"La lista de idiomas refleja sólo los idiomas para los cuales tiene un "
+"diccionario instalado."
 
 #: ../src/empathy-preferences.ui.h:33
 msgid "Themes"
@@ -2512,6 +2548,36 @@ msgstr ""
 "El gestor de conexiones seleccionado no soporta la extensión de depuración "
 "remota."
 
+#~ msgid "<b>Network</b>"
+#~ msgstr "<b>Red</b>"
+
+#~ msgid "<b>Servers</b>"
+#~ msgstr "<b>Servidores</b>"
+
+#~ msgid "<b>Topic:</b>"
+#~ msgstr "<b>Tema:</b>"
+
+#~ msgid "<b>Contact</b>"
+#~ msgstr "<b>Contacto</b>"
+
+#~ msgid "<b>Groups</b>"
+#~ msgstr "<b>Grupos</b>"
+
+#~ msgid "<b>Add Account</b>"
+#~ msgstr "<b>Añadir cuenta</b>"
+
+#~ msgid "New message from %s"
+#~ msgstr "Nuevo mensaje de %s"
+
+#~ msgid "File transfers"
+#~ msgstr "Transferencias de archivos"
+
+#~ msgid "<b>Contact List</b>"
+#~ msgstr "<b>Lista de contactos</b>"
+
+#~ msgid "Sélectionner un dossier"
+#~ msgstr "Seleccionar una carpeta"
+
 #~ msgid "I already have an account I want to use"
 #~ msgstr "Ya tengo una cuenta que quiero usar"
 
index 97719da857c13161aa27b56f9da445c42ac15455..d070d0bd6cb1dbc0bd2289910157db3d6cb8373c 100644 (file)
--- a/po/ta.po
+++ b/po/ta.po
@@ -1,20 +1,22 @@
-# translation of empathy.master.po to Tamil
+# translation of ta.po to
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
 # Dr.T.vasudevan <agnihot3@gmail.com>, 2009.
+# Dr.T.Vasudevan <agnihot3@gmail.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: empathy.master\n"
+"Project-Id-Version: ta\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-20 13:57+0530\n"
-"PO-Revision-Date: 2009-05-07 21:34+0530\n"
-"Last-Translator: Dr.T.vasudevan <agnihot3@gmail.com>\n"
+"POT-Creation-Date: 2009-06-19 05:47+0530\n"
+"PO-Revision-Date: 2009-06-20 14:19+0530\n"
+"Last-Translator: Dr.T.Vasudevan <agnihot3@gmail.com>\n"
 "Language-Team: Tamil <Ubuntu-l10n-tam@lists.ubuntu.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Lokalize 0.3\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: ../data/empathy.desktop.in.in.h:1
 msgid "Empathy Instant Messenger"
@@ -39,10 +41,8 @@ msgid "Chat window theme"
 msgstr "அரட்டை சாளர கருத்து"
 
 #: ../data/empathy.schemas.in.h:4
-msgid ""
-"Comma separated list of spell checker languages to use (e.g. en, fr, nl)."
-msgstr ""
-"சொல் திருத்தி மொழிகளை பயன்படுத்த காற் புள்ளியால் பிரித்த பட்டியல் (எ-டு. en, fr, nl)"
+msgid "Comma separated list of spell checker languages to use (e.g. en, fr, nl)."
+msgstr "சொல் திருத்தி மொழிகளை பயன்படுத்த காற் புள்ளியால் பிரித்த பட்டியல் (எ-டு. en, fr, nl)"
 
 #: ../data/empathy.schemas.in.h:5
 msgid "Compact contact list"
@@ -65,151 +65,202 @@ msgid "Disable sounds when away"
 msgstr "வெளியே உள்ள போது ஒலியை செயல் நீக்குக"
 
 #: ../data/empathy.schemas.in.h:10
+msgid "Empathy can publish the user's location"
+msgstr "பயனரின் இடத்தை தொடர்புகளுக்கு எம்பதியால் காட்ட இயலும்"
+
+#: ../data/empathy.schemas.in.h:11
+msgid "Empathy can use the GPS to guess the location"
+msgstr "எம்பதியால் பயனரின் இடத்தை ஊகிக்க ஜிபிஎஸ் ஐ  பயன்படுத்த இயலும்"
+
+#: ../data/empathy.schemas.in.h:12
+msgid "Empathy can use the cellular network to guess the location"
+msgstr "எம்பதியால் பயனரின் இடத்தை ஊகிக்க அலைபேசி வலையை  பயன்படுத்த இயலும்"
+
+#: ../data/empathy.schemas.in.h:13
+msgid "Empathy can use the network to guess the location"
+msgstr "எம்பதியால் பயனரின் இடத்தை ஊகிக்க  வலையை பயன்படுத்த இயலும்"
+
+#: ../data/empathy.schemas.in.h:14
 msgid "Empathy default download folder"
 msgstr "எம்பதி முன்னிருப்பு தரவிறக்க அடைவு"
 
-#: ../data/empathy.schemas.in.h:11
+#: ../data/empathy.schemas.in.h:15
 msgid "Empathy has asked about importing accounts"
 msgstr "எம்பதி கணக்குகளை இறக்குமதி செய்ய கேட்கிறது"
 
-#: ../data/empathy.schemas.in.h:12
+#: ../data/empathy.schemas.in.h:16
 msgid "Empathy should auto-connect on startup"
 msgstr "துவங்கும் போது எம்பதி தானியங்கியாக இணைக்க வேண்டும்."
 
-#: ../data/empathy.schemas.in.h:13
+#: ../data/empathy.schemas.in.h:17
+msgid "Empathy should reduce the location's accuracy"
+msgstr "துவங்கும் போது எம்பதி இடததின் குறிப்பை குறைக்க வேண்டும்."
+
+#: ../data/empathy.schemas.in.h:18
 msgid "Empathy should use the avatar of the contact as the chat window icon"
-msgstr ""
-"துவங்கும் போது எம்பதி அரட்டை சாரளத்தில்  சின்னமாக தொடர்பின் அவதாரத்தை காட்ட  வேண்டும்."
+msgstr "துவங்கும் போது எம்பதி அரட்டை சாரளத்தில்  சின்னமாக தொடர்பின் அவதாரத்தை காட்ட  வேண்டும்."
 
-#: ../data/empathy.schemas.in.h:14
+#: ../data/empathy.schemas.in.h:19
 msgid "Enable popup notifications for new messages"
 msgstr "புதிய செய்திகளுக்கு துள்ளு அறிவிப்புகளை செயல்படுத்து "
 
-#: ../data/empathy.schemas.in.h:15
+#: ../data/empathy.schemas.in.h:20
 msgid "Enable spell checker"
 msgstr "சொல் திருத்தியை செயல்படுத்து"
 
-#: ../data/empathy.schemas.in.h:16
+#: ../data/empathy.schemas.in.h:21
 msgid "Hide main window"
 msgstr "முதன்மை சாளரத்தை மறை "
 
-#: ../data/empathy.schemas.in.h:17
+#: ../data/empathy.schemas.in.h:22
 msgid "Hide the main window."
 msgstr "முதன்மை சாளரத்தை மறை "
 
-#: ../data/empathy.schemas.in.h:18
+#: ../data/empathy.schemas.in.h:23
 msgid "NetworkManager should be used"
 msgstr "வலைப்பின்னல் மேலாளரை பயன்படுத்த வேண்டும்"
 
-#: ../data/empathy.schemas.in.h:19
+#: ../data/empathy.schemas.in.h:24
 msgid "Nick completed character"
 msgstr "செல்லப்பெயரை பூர்த்தி செய்யும் எழுத்துரு"
 
-#: ../data/empathy.schemas.in.h:20
+#: ../data/empathy.schemas.in.h:25
 msgid "Open new chats in separate windows"
 msgstr "புதிய அரட்டைகளை தனி சாளரத்தில் திற"
 
-#: ../data/empathy.schemas.in.h:21
+#: ../data/empathy.schemas.in.h:26
+msgid "Path of the adium theme to use"
+msgstr "பயன்படுத்த வேண்டிய ஏடியம் கருத்துக்கு பாதை"
+
+#: ../data/empathy.schemas.in.h:27
+msgid "Path of the adium theme to use if the theme used for chat is adium."
+msgstr "அரட்டை அறைகளில் எடியம் கருத்தை பயன்படுத்த வேண்டுமானால் அதன் பாதை"
+
+#: ../data/empathy.schemas.in.h:28
 msgid "Play a sound for incoming messages"
 msgstr "உள்வரும் செய்திகளுக்கு ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:22
+#: ../data/empathy.schemas.in.h:29
 msgid "Play a sound for new conversations"
 msgstr "உள்வரும் உரையாடல்களுக்கு ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:23
+#: ../data/empathy.schemas.in.h:30
 msgid "Play a sound for outgoing messages"
 msgstr "வெளிச்செல்லும் செய்திகளுக்கு ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:24
+#: ../data/empathy.schemas.in.h:31
 msgid "Play a sound when a contact logs in"
 msgstr "தொடர்பு உள் நுழைகையில் ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:25
+#: ../data/empathy.schemas.in.h:32
 msgid "Play a sound when a contact logs out"
 msgstr "தொடர்பு வெளி செல்கையில் ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:26
+#: ../data/empathy.schemas.in.h:33
 msgid "Play a sound when we log in"
 msgstr "நாம் உள் நுழைகையில் ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:27
+#: ../data/empathy.schemas.in.h:34
 msgid "Play a sound when we log out"
 msgstr "நாம் வெளி செல்கையில் ஒலி எழுப்பு"
 
-#: ../data/empathy.schemas.in.h:28
+#: ../data/empathy.schemas.in.h:35
 msgid "Popup notifications if the chat isn't focused"
 msgstr "அரட்டை குவிப்பில் இல்லையானால் வெளித்துள்ளல் மூலம் அறிவி"
 
-#: ../data/empathy.schemas.in.h:29
+#: ../data/empathy.schemas.in.h:36
 msgid "Salut account is created"
 msgstr "சாலுட் கணக்கு துவக்கப்பட்டது "
 
-#: ../data/empathy.schemas.in.h:30
+#: ../data/empathy.schemas.in.h:37
 msgid "Show avatars"
 msgstr "அவதாரங்களை காட்டு"
 
-#: ../data/empathy.schemas.in.h:31
+#: ../data/empathy.schemas.in.h:38
+msgid "Show contact list in rooms"
+msgstr "தொடர்பு பட்டியல் ஐ அறைகளில் காட்டு "
+
+#: ../data/empathy.schemas.in.h:39
 msgid "Show hint about closing the main window"
 msgstr "முதன்மை சாளரத்தை மூடிவது குறித்து குறிப்பு காட்டு "
 
-#: ../data/empathy.schemas.in.h:32
+#: ../data/empathy.schemas.in.h:40
 msgid "Show offline contacts"
 msgstr " வலை தொடர்பில்லாத தொடர்புகளை காட்டு"
 
-#: ../data/empathy.schemas.in.h:33
+#: ../data/empathy.schemas.in.h:41
 msgid "Spell checking languages"
 msgstr "எழுத்துப்பிழை திருத்த மொழி"
 
-#: ../data/empathy.schemas.in.h:34
+#: ../data/empathy.schemas.in.h:42
 msgid "The default folder to save file transfers in."
 msgstr "இடமாற்றிய கோப்புகளை சேமிக்க முன்னிருப்பு அடைவு"
 
-#: ../data/empathy.schemas.in.h:35
+#: ../data/empathy.schemas.in.h:43
 msgid "The last directory that an avatar image was chosen from."
 msgstr "அவதாரம் படம் தேர்ந்தெடுத்த கடைசி அடைவு "
 
-#: ../data/empathy.schemas.in.h:36
+#: ../data/empathy.schemas.in.h:44
 msgid "The theme that is used to display the conversation in chat windows."
 msgstr "அரட்டை சாளரங்களில் உரையாடல்களை காட்ட பயன்படும் கருத்து"
 
-#: ../data/empathy.schemas.in.h:37
+#: ../data/empathy.schemas.in.h:45
 msgid "Use graphical smileys"
 msgstr "வரைகலை சிரிப்பான்களை பயன்படுத்துக"
 
-#: ../data/empathy.schemas.in.h:38
+#: ../data/empathy.schemas.in.h:46
 msgid "Use notification sounds"
 msgstr "அறிவிப்பு ஒலிகளை பயன்படுத்துக"
 
-#: ../data/empathy.schemas.in.h:39
+#: ../data/empathy.schemas.in.h:47
 msgid "Use theme for chat rooms"
 msgstr "அரட்டை அறைகளுக்கு கருத்துக்களை பயன்படுத்துக"
 
-#: ../data/empathy.schemas.in.h:40
+#: ../data/empathy.schemas.in.h:48
+msgid "Whether or not Empathy can publish the user's location to his contacts."
+msgstr "பயனரின் இடத்தை தொடர்புகளுக்கு எம்பதி காட்ட வேண்டுமா இல்லையா?"
+
+#: ../data/empathy.schemas.in.h:49
+msgid "Whether or not Empathy can use the GPS to guess the location."
+msgstr "எம்பதி பயனரின் இடத்தை ஊகிக்க ஜிபிஎஸ் ஐ பயன்படுத்தலாமா இல்லையா."
+
+#: ../data/empathy.schemas.in.h:50
+msgid "Whether or not Empathy can use the cellular network to guess the location."
+msgstr "எம்பதி பயனரின் இடத்தை ஊகிக்க அலைபேசி வலையை பயன்படுத்தலாமா இல்லையா."
+
+#: ../data/empathy.schemas.in.h:51
+msgid "Whether or not Empathy can use the network to guess the location."
+msgstr "எம்பதி பயனரின் இடத்தை ஊகிக்க  வலையை பயன்படுத்தலாமா இல்லையா."
+
+#: ../data/empathy.schemas.in.h:52
 msgid ""
 "Whether or not Empathy has asked about importing accounts from other "
 "programs."
-msgstr ""
-"எம்பதி மற்ற நிரல்களில் இருந்து கணக்குகளை இறக்குமதி செய்வது குறித்து வினவியதா இல்லையா."
+msgstr "எம்பதி மற்ற நிரல்களில் இருந்து கணக்குகளை இறக்குமதி செய்வது குறித்து வினவியதா இல்லையா."
 
-#: ../data/empathy.schemas.in.h:41
+#: ../data/empathy.schemas.in.h:53
 msgid ""
 "Whether or not Empathy should automatically log in to your accounts on "
 "startup."
 msgstr "எம்பதி துவங்கும்போது கணக்குகளில் தானியங்கியாக உள்நுழைய வேண்டுமா இல்லையா."
 
-#: ../data/empathy.schemas.in.h:42
+#: ../data/empathy.schemas.in.h:54
+msgid ""
+"Whether or not Empathy should reduce the location's accuracy for privacy "
+"reasons."
+msgstr "அந்தரங்கத்தை காப்பாற்ற துவங்கும் போது எம்பதி இடத்தின் குறிப்பை குறைக்க வேண்டுமா இல்லையா"
+
+#: ../data/empathy.schemas.in.h:55
 msgid ""
 "Whether or not Empathy should use the avatar of the contact as the chat "
 "window icon."
 msgstr "எம்பதி தொடர்பின் அவதாரத்தை அரட்டை அறை சின்னமாக பயன்படுத்த வேண்டுமா இல்லையா."
 
-#: ../data/empathy.schemas.in.h:43
-msgid ""
-"Whether or not the Salut account has been created on the first Empathy run."
+#: ../data/empathy.schemas.in.h:56
+msgid "Whether or not the Salut account has been created on the first Empathy run."
 msgstr "முதல் ஓட்டத்தில் எம்பதி சலூட் கணக்கை உருவாக்கியதா இல்லையா."
 
-#: ../data/empathy.schemas.in.h:44
+#: ../data/empathy.schemas.in.h:57
 msgid ""
 "Whether or not the network manager should be used to automatically "
 "disconnect/reconnect."
@@ -217,57 +268,55 @@ msgstr ""
 "வலைப்பின்னல் மேலாளர் ஐ தானியங்கியாக இணைக்கவும் இணைப்பு விலகவும் பயன்படுத்த வேண்டுமா "
 "இல்லையா"
 
-#: ../data/empathy.schemas.in.h:45
+#: ../data/empathy.schemas.in.h:58
 msgid ""
 "Whether or not to check words typed against the languages you want to check "
 "with."
 msgstr "நீங்கள் விரும்பிய மொழிகளில் உள்ளிட்ட சொற்களை சோதிக்க வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:46
-msgid ""
-"Whether or not to convert smileys into graphical images in conversations."
+#: ../data/empathy.schemas.in.h:59
+msgid "Whether or not to convert smileys into graphical images in conversations."
 msgstr "உரையாடல்களில் சிரிப்பான்களை வரைகலை படங்களாக மாற்ற வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:47
-msgid ""
-"Whether or not to play a sound to notify for contacts logging in the network."
+#: ../data/empathy.schemas.in.h:60
+msgid "Whether or not to play a sound to notify for contacts logging in the network."
 msgstr "வலைப்பின்னலில் தொடர்புகள் உள்நுழையும் போது ஒலியை எழுப்ப வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:48
+#: ../data/empathy.schemas.in.h:61
 msgid ""
 "Whether or not to play a sound to notify for contacts logging off the "
 "network."
 msgstr "வலைப்பின்னலில் தொடர்புகள் வெளிச்செல்லும் போது ஒலியை எழுப்ப வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:49
+#: ../data/empathy.schemas.in.h:62
 msgid "Whether or not to play a sound to notify for events."
 msgstr "நிகழ்வுகள் போது ஒலியை எழுப்ப வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:50
+#: ../data/empathy.schemas.in.h:63
 msgid "Whether or not to play a sound to notify for incoming messages."
 msgstr "செய்திகள் உள்வரும் போது ஒலியை எழுப்ப வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:51
+#: ../data/empathy.schemas.in.h:64
 msgid "Whether or not to play a sound to notify for new conversations."
 msgstr "புதிய உரையாடல்கள் போது ஒலியை எழுப்ப வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:52
+#: ../data/empathy.schemas.in.h:65
 msgid "Whether or not to play a sound to notify for outgoing messages."
 msgstr "செய்திகள் வெளிச்செல்லும் போது ஒலியை எழுப்ப வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:53
+#: ../data/empathy.schemas.in.h:66
 msgid "Whether or not to play a sound when logging in a network."
 msgstr "வலைப்பின்னலில் உள்நுழையும் போது ஒலி இயக்க வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:54
+#: ../data/empathy.schemas.in.h:67
 msgid "Whether or not to play a sound when logging off a network."
 msgstr "வலைப்பின்னலில் வெளிச்செல்லும் போது ஒலி இயக்க வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:55
+#: ../data/empathy.schemas.in.h:68
 msgid "Whether or not to play sound notifications when away or busy."
 msgstr "வெளியே அல்லது வேலையாக உள்ள போது ஒலி அறிக்கைகளை இயக்க வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:56
+#: ../data/empathy.schemas.in.h:69
 msgid ""
 "Whether or not to show a popup notification when receiving a new message "
 "even if the chat is already opened, but not focused."
@@ -275,26 +324,29 @@ msgstr ""
 "புதிய செய்தி ஒன்று வரும்போது அரட்டை திறந்து இருந்து குவிப்பில் இல்லாவிட்டாலும் துள்ளு "
 "அறிக்கையை காட்ட வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:57
-msgid ""
-"Whether or not to show a popup notification when receiving a new message."
+#: ../data/empathy.schemas.in.h:70
+msgid "Whether or not to show a popup notification when receiving a new message."
 msgstr "புதிய செய்தி ஒன்று வரும்போது  துள்ளு அறிக்கையை காட்ட வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:58
+#: ../data/empathy.schemas.in.h:71
 msgid ""
 "Whether or not to show avatars for contacts in the contact list and chat "
 "windows."
 msgstr "அரட்டை பட்டியலிலும் தொடர்பு பட்டியலிலும் அவதாரங்களை காட்ட வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:59
+#: ../data/empathy.schemas.in.h:72
 msgid "Whether or not to show contacts that are offline in the contact list."
 msgstr "தொடர்பு பட்டியலிலும் இணைப்பில் இல்லாத தொடர்புகளை காட்ட வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:60
+#: ../data/empathy.schemas.in.h:73
 msgid "Whether or not to show popup notifications when away or busy."
 msgstr "வெளியே அல்லது வேலையாக உள்ள போது துள்ளு அறிக்கைகளை காட்ட வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:61
+#: ../data/empathy.schemas.in.h:74
+msgid "Whether or not to show the contact list in chat rooms."
+msgstr "அரட்டை அறையில் தொடர்பு பட்டியலை காட்ட வேண்டுமா இல்லையா?"
+
+#: ../data/empathy.schemas.in.h:75
 msgid ""
 "Whether or not to show the message dialog about closing the main window with "
 "the 'x' button in the title bar."
@@ -302,15 +354,15 @@ msgstr ""
 "தலைப்பு பட்டியில் x பொத்தானால் முதன்மை சாளரத்தை மூடுவதை குறித்த உரையாடலை காட்ட "
 "வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:62
+#: ../data/empathy.schemas.in.h:76
 msgid "Whether to show the contact list in compact mode or not."
 msgstr "அடக்கப்பாங்கில் தொடர்பு பட்டியலை காட்ட வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:63
+#: ../data/empathy.schemas.in.h:77
 msgid "Whether to use the theme for chat rooms or not."
 msgstr "அரட்டை அறைகளில் கருத்துக்களை பயன்படுத்த வேண்டுமா இல்லையா?"
 
-#: ../data/empathy.schemas.in.h:64
+#: ../data/empathy.schemas.in.h:78
 msgid ""
 "Which criterium to use when sorting the contact list. Default is to use sort "
 "by the contact's name with the value \"name\". A value of \"state\" will "
@@ -320,36 +372,130 @@ msgstr ""
 "பெயர் மதிப்பு \"பெயர்\". \"நிலை\" என்ற மதிப்பு தொடர்பை நிலையை பொருத்து "
 "வரிசைப்படுத்தும்."
 
-#: ../libempathy/empathy-tp-contact-list.c:727 ../src/empathy.c:278
+#: ../libempathy/empathy-ft-handler.c:838
+msgid "The hash of the received file and the sent one do not match"
+msgstr "பெற்ற கோப்பின் ஹாஷ் உம் அனுப்பியகோப்பின் ஹாஷ் உம் இசையவில்லை."
+
+#: ../libempathy/empathy-ft-handler.c:1098
+msgid "File transfer not supported by remote contact"
+msgstr "கோப்பு பறிமாற்றத்துக்கு தொலை தொலைதொடர்பில் ஆதரவில்லை"
+
+#: ../libempathy/empathy-ft-handler.c:1156
+msgid "The selected file is not a regular file"
+msgstr "தேர்ந்தெடுத்த கோப்பு வழக்கமான கோப்பு அல்ல"
+
+#: ../libempathy/empathy-ft-handler.c:1165
+msgid "The selected file is empty"
+msgstr "தேர்ந்தெடுத்த கோப்பு காலியாக உள்ளது"
+
+#: ../libempathy/empathy-tp-contact-list.c:757 ../src/empathy.c:287
 msgid "People nearby"
 msgstr "அருகில் உள்ள மக்கள்"
 
-#: ../libempathy/empathy-utils.c:251
+#: ../libempathy/empathy-tp-file.c:279
+msgid "Socket type not supported"
+msgstr "சொருகி வாய் வகை க்கு ஆதரவில்லை"
+
+#: ../libempathy/empathy-tp-file.c:398
+msgid "No reason was specified"
+msgstr "காரணம் குறிப்பிடவில்லை"
+
+#: ../libempathy/empathy-tp-file.c:401
+msgid "The change in state was requested"
+msgstr "நிலையில் மாற்றம் வேண்டப்பட்டது"
+
+#: ../libempathy/empathy-tp-file.c:404
+msgid "You canceled the file transfer"
+msgstr "நீங்கள் கோப்பு பரி மாற்றத்தை ரத்து செய்தீர்கள்"
+
+#: ../libempathy/empathy-tp-file.c:407
+msgid "The other participant canceled the file transfer"
+msgstr "மற்ற பங்குதாரர் கோப்பு பரி மாற்றத்தை ரத்து செய்தார்."
+
+#: ../libempathy/empathy-tp-file.c:410
+msgid "Error while trying to transfer the file"
+msgstr "கோப்பு பரி மாற்றத்தில்  பிழை "
+
+#: ../libempathy/empathy-tp-file.c:413
+msgid "The other participant is unable to transfer the file"
+msgstr "மற்ற பங்குதாரர் கோப்பு பரி மாற்றத்தை செய்ய முடியவில்லை."
+
+#: ../libempathy/empathy-tp-file.c:416
+msgid "Unknown reason"
+msgstr "தெரியாத காரணம்"
+
+#: ../libempathy/empathy-utils.c:274
 msgid "Available"
 msgstr "இருப்பவை"
 
-#: ../libempathy/empathy-utils.c:253
+#: ../libempathy/empathy-utils.c:276
 msgid "Busy"
 msgstr "வேலையில்"
 
-#: ../libempathy/empathy-utils.c:256
+#: ../libempathy/empathy-utils.c:279
 msgid "Away"
 msgstr "வெளியில்"
 
-#: ../libempathy/empathy-utils.c:258
+#: ../libempathy/empathy-utils.c:281
 msgid "Hidden"
 msgstr "மறைந்துள்ள"
 
-#: ../libempathy/empathy-utils.c:261
+#: ../libempathy/empathy-utils.c:283
 msgid "Offline"
 msgstr "இணைப்பு விலகி"
 
+#: ../libempathy/empathy-time.c:137
+#, c-format
+msgid "%d second ago"
+msgid_plural "%d seconds ago"
+msgstr[0] "%d வினாடி முன்"
+msgstr[1] "%d வினாடிகள் முன்"
+
+#: ../libempathy/empathy-time.c:142
+#, c-format
+msgid "%d minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] "%d நிமிடம் முன்"
+msgstr[1] "%d நிமிடங்கள் முன்"
+
+#: ../libempathy/empathy-time.c:147
+#, c-format
+msgid "%d hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] "%d மணி முன்"
+msgstr[1] "%d மணிகள் முன்"
+
+#: ../libempathy/empathy-time.c:152
+#, c-format
+msgid "%d day ago"
+msgid_plural "%d days ago"
+msgstr[0] "%d நாள் முன்"
+msgstr[1] "%d நாட்கள் முன்"
+
+#: ../libempathy/empathy-time.c:157
+#, c-format
+msgid "%d week ago"
+msgid_plural "%d weeks ago"
+msgstr[0] "%d வாரம் முன்"
+msgstr[1] "%d வாரங்கள் முன்"
+
+#: ../libempathy/empathy-time.c:162
+#, c-format
+msgid "%d month ago"
+msgid_plural "%d months ago"
+msgstr[0] "%d மாதம் முன்"
+msgstr[1] "%d மாதங்கள் முன்"
+
+#: ../libempathy/empathy-time.c:167
+msgid "in the future"
+msgstr "எதிர்காலத்தில்"
+
 #: ../libempathy-gtk/empathy-account-chooser.c:419
 msgid "All"
 msgstr "அனைத்து"
 
 #: ../libempathy-gtk/empathy-account-widget.c:302
-#: ../libempathy-gtk/empathy-account-widget.c:349
+#: ../libempathy-gtk/empathy-account-widget.c:354
 #, c-format
 msgid "%s:"
 msgstr "%s:"
@@ -363,8 +509,8 @@ msgstr "%s:"
 #: ../libempathy-gtk/empathy-account-widget-salut.ui.h:1
 #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:1
 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:1
-msgid "<b>Advanced</b>"
-msgstr "<b> மேம்பட்ட</b>"
+msgid "Advanced"
+msgstr "மேம்பட்ட"
 
 #: ../libempathy-gtk/empathy-account-widget-aim.ui.h:2
 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:3
@@ -395,12 +541,12 @@ msgstr "_P துறை:"
 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:11
 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:5
 #: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:9
-#: ../src/empathy-new-chatroom-dialog.ui.h:8
+#: ../src/empathy-new-chatroom-dialog.ui.h:9
 msgid "_Server:"
 msgstr "(_S) சேவையகம்:"
 
 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:2
-#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:2
 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:2
 msgid "Login I_D:"
 msgstr "உள்நுழை அடையாளம் (_D):"
@@ -419,44 +565,40 @@ msgid "New Network"
 msgstr "புதிய வலையமைப்பு"
 
 #: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1
-msgid "<b>Network</b>"
-msgstr "<b>பிணையம்</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
-msgid "<b>Servers</b>"
-msgstr "<b> சேவையகங்கள்</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
 msgid "Charset:"
 msgstr "எழுத்துருதொகுதி:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
 msgid "Network"
 msgstr "வலையமைப்பு"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
 msgid "Network:"
 msgstr "பிணையம்:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
 msgid "Nickname:"
 msgstr "புனைப்பெயர்:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
 msgid "Password:"
 msgstr "கடவுச்சொல்:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
 msgid "Quit message:"
 msgstr "வெளிச்செல் செய்திகள்:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
 msgid "Real name:"
 msgstr "உண்மையான பெயர்:"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:2
-msgid "<b>Override server settings</b>"
-msgstr "<b>சேவையக அமைப்பை உதாசீனம் செய்</b>"
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8
+msgid "Servers"
+msgstr "சேவையகங்கள்"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+msgid "Override server settings"
+msgstr "சேவையக அமைப்பை உதாசீனம் செய்"
 
 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:5
 msgid "Pri_ority:"
@@ -564,124 +706,120 @@ msgstr "அனைத்து கோப்புகள்"
 msgid "Click to enlarge"
 msgstr "பெரியதாக்க சொடுக்குக"
 
-#: ../libempathy-gtk/empathy-chat.c:178
+#: ../libempathy-gtk/empathy-chat.c:186
 msgid "Failed to reconnect this chat"
 msgstr "இந்த அரட்டைக்கு மீள் இணைப்பு தோற்றது "
 
-#: ../libempathy-gtk/empathy-chat.c:396
+#: ../libempathy-gtk/empathy-chat.c:404
 msgid "Unsupported command"
 msgstr "ஆதரவில்லாத கட்டளை"
 
-#: ../libempathy-gtk/empathy-chat.c:531
+#: ../libempathy-gtk/empathy-chat.c:539
 msgid "offline"
 msgstr "இணைப்பு விலகி "
 
-#: ../libempathy-gtk/empathy-chat.c:534
+#: ../libempathy-gtk/empathy-chat.c:542
 msgid "invalid contact"
 msgstr "செல்லுபடியாகாத தொடர்பு"
 
-#: ../libempathy-gtk/empathy-chat.c:537
+#: ../libempathy-gtk/empathy-chat.c:545
 msgid "permission denied"
 msgstr "அனுமதி மறுக்கப்பட்டது"
 
-#: ../libempathy-gtk/empathy-chat.c:540
+#: ../libempathy-gtk/empathy-chat.c:548
 msgid "too long message"
 msgstr "மிக நீள செய்தி"
 
-#: ../libempathy-gtk/empathy-chat.c:543
+#: ../libempathy-gtk/empathy-chat.c:551
 msgid "not implemented"
 msgstr "அமுலாக்கவில்லை"
 
-#: ../libempathy-gtk/empathy-chat.c:546
+#: ../libempathy-gtk/empathy-chat.c:554
 msgid "unknown"
 msgstr "தெரியாத"
 
-#: ../libempathy-gtk/empathy-chat.c:550
+#: ../libempathy-gtk/empathy-chat.c:558
 #, c-format
 msgid "Error sending message '%s': %s"
 msgstr "செய்தி '%s' அனுப்புவதில் பிழை: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:580
+#: ../libempathy-gtk/empathy-chat.c:588
 #, c-format
 msgid "Topic set to: %s"
 msgstr "தலைப்பு இதற்கு அமை: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:582
+#: ../libempathy-gtk/empathy-chat.c:590
 msgid "No topic defined"
 msgstr "தலைப்பு ஏதும் வரையறுக்கப்படவில்லை"
 
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:959
 msgid "(No Suggestions)"
 msgstr "(பரிந்துரைகள் இல்லை )"
 
-#: ../libempathy-gtk/empathy-chat.c:1005
+#: ../libempathy-gtk/empathy-chat.c:1013
 msgid "Insert Smiley"
 msgstr "சிரிப்பானை சொருகு"
 
 #. send button
-#: ../libempathy-gtk/empathy-chat.c:1023
-#: ../libempathy-gtk/empathy-ui-utils.c:1507
+#: ../libempathy-gtk/empathy-chat.c:1031
+#: ../libempathy-gtk/empathy-ui-utils.c:1476
 msgid "_Send"
 msgstr "அனுப்பு (_S)"
 
-#: ../libempathy-gtk/empathy-chat.c:1057
+#: ../libempathy-gtk/empathy-chat.c:1065
 msgid "_Spelling Suggestions"
 msgstr "_S எழுத்தாக்க பரிந்துரைகள் "
 
-#: ../libempathy-gtk/empathy-chat.c:1171
+#: ../libempathy-gtk/empathy-chat.c:1179
 #, c-format
 msgid "%s has joined the room"
 msgstr "%s அறையில் சேர்ந்தார்"
 
-#: ../libempathy-gtk/empathy-chat.c:1174
+#: ../libempathy-gtk/empathy-chat.c:1182
 #, c-format
 msgid "%s has left the room"
 msgstr "%s அறையில் இருந்து வெளியேறினார்"
 
-#: ../libempathy-gtk/empathy-chat.c:1289 ../src/empathy-call-window.c:889
+#: ../libempathy-gtk/empathy-chat.c:1313 ../src/empathy-call-window.c:1199
 msgid "Disconnected"
 msgstr "துண்டிக்கபட்டது"
 
-#: ../libempathy-gtk/empathy-chat.c:1700
+#: ../libempathy-gtk/empathy-chat.c:1742
 msgid "Connected"
 msgstr "இணைக்கப்பட்டது"
 
-#: ../libempathy-gtk/empathy-chat.c:1750
+#: ../libempathy-gtk/empathy-chat.c:1792
 #: ../libempathy-gtk/empathy-log-window.c:501
 msgid "Conversation"
 msgstr "உரையாடல்"
 
-#: ../libempathy-gtk/empathy-chat.ui.h:1
-msgid "<b>Topic:</b>"
-msgstr "<b> தலைப்பு</b>"
+#: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:471
+msgid "Topic:"
+msgstr "தலைப்பு:"
 
-#: ../libempathy-gtk/empathy-chat-text-view.c:323
+#: ../libempathy-gtk/empathy-chat-text-view.c:316
 msgid "_Copy Link Address"
 msgstr "இணைப்பு முகவரியை நகலெடு (_C)"
 
-#: ../libempathy-gtk/empathy-chat-text-view.c:331
+#: ../libempathy-gtk/empathy-chat-text-view.c:323
 msgid "_Open Link"
 msgstr "இணைப்பினை திற (_O)"
 
 #. Translators: timestamp displayed between conversations in
 #. * chat windows (strftime format string)
-#: ../libempathy-gtk/empathy-chat-text-view.c:424
+#: ../libempathy-gtk/empathy-chat-text-view.c:415
 msgid "%A %B %d %Y"
 msgstr "%A %B %d %Y"
 
 #: ../libempathy-gtk/empathy-contact-dialogs.c:179
-#: ../libempathy-gtk/empathy-contact-dialogs.c:237
+#: ../libempathy-gtk/empathy-contact-dialogs.c:238
 msgid "Edit Contact Information"
 msgstr "தொடர்பின்  தகவல் ஐ திருத்து"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:288
+#: ../libempathy-gtk/empathy-contact-dialogs.c:289
 msgid "Personal Information"
 msgstr "தனிப்பட்ட தகவல்"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:368
-msgid "I would like to add you to my contact list."
-msgstr "உங்களை என் தொடர்பு பட்டியலில் சேர்க்க விரும்புகிறேன்."
-
 #: ../libempathy-gtk/empathy-contact-dialogs.c:392
 msgid "New Contact"
 msgstr "புதிய தொடர்பு"
@@ -694,52 +832,45 @@ msgstr "(_L) பிறகு முடிவு எடுக்கலாம்"
 msgid "Subscription Request"
 msgstr "சந்தா வேண்டுதல்"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1377
+#: ../libempathy-gtk/empathy-contact-list-view.c:1378
 #, c-format
 msgid "Do you really want to remove the group '%s'?"
 msgstr "நீங்கள் நிச்சயம் குழு '%s' ஐ நீக்க விரும்புகிறீர்களா?"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1379
+#: ../libempathy-gtk/empathy-contact-list-view.c:1380
 msgid "Removing group"
 msgstr "குழுவை நீக்குதல்"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1426
+#: ../libempathy-gtk/empathy-contact-list-view.c:1427
 #: ../libempathy-gtk/empathy-contact-list-view.c:1505
 msgid "_Remove"
 msgstr "நீக்கவும் (_R)"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1456
+#: ../libempathy-gtk/empathy-contact-list-view.c:1457
 #, c-format
 msgid "Do you really want to remove the contact '%s'?"
 msgstr "நீங்கள் நிச்சயம் தொடர்பு '%s' ஐ நீக்க விரும்புகிறீர்களா?"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1458
+#: ../libempathy-gtk/empathy-contact-list-view.c:1459
 msgid "Removing contact"
 msgstr "தொடர்பு ஐ நீக்குதல்"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1463
-msgid "Sorry, I don't want you in my contact list anymore."
-msgstr "மன்னிக்கவும். மேலும் நீங்கள் தொடர்பு பட்டியலில் இருக்க வேண்டாம்."
-
 #: ../libempathy-gtk/empathy-contact-menu.c:135
-#: ../src/empathy-main-window.ui.h:9
+#: ../src/empathy-main-window.ui.h:8
 msgid "_Chat"
 msgstr "_C அரட்டை"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:166
-
 msgctxt "menu item"
 msgid "_Audio Call"
 msgstr "(_A) ஒலி அழைப்பு"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:198
-
 msgctxt "menu item"
 msgid "_Video Call"
 msgstr "(_V) விடியோ அழைப்பு"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:237
-#: ../src/empathy-main-window.ui.h:18
 msgid "_View Previous Conversations"
 msgstr "(_V) முந்தைய உரையாடல்கள் ஐ காண்"
 
@@ -768,58 +899,167 @@ msgstr "(_I) அரட்டை அறைக்கு அழைப்பு"
 msgid "Select a contact"
 msgstr "ஒரு தொடர்பு ஐ தேர்வு செய்க"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:413
+#: ../libempathy-gtk/empathy-contact-widget.c:440
 msgid "Save Avatar"
 msgstr "அவதாரத்தை சேமி"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:469
+#: ../libempathy-gtk/empathy-contact-widget.c:496
 msgid "Unable to save avatar"
 msgstr "அவதாரத்தை சேமிக்க முடியவில்லை"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:952
+#: ../libempathy-gtk/empathy-contact-widget.c:979
 msgid "Select"
 msgstr "தேர்வு"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:961
-#: ../src/empathy-main-window.c:894
+#: ../libempathy-gtk/empathy-contact-widget.c:988
+#: ../src/empathy-main-window.c:905
 msgid "Group"
 msgstr "குழு"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:1
-msgid "<b>Client Information</b>"
-msgstr "<b> சார்ந்தோன் தகவல்</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1239
+msgid "Country ISO Code:"
+msgstr "நாட்டின் ஐஎஸ்ஓ குறி:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-msgid "<b>Contact Details</b>"
-msgstr "<b>சார்ந்தோன் தொடர்பு விவரங்கள்</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1241
+msgid "Country:"
+msgstr "நாடு:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-msgid "<b>Contact</b>"
-msgstr "<b>தொடர்பு</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1243
+msgid "State:"
+msgstr "மாநிலம்:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:4
-msgid "<b>Groups</b>"
-msgstr "<b>குழுக்கள்</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1245
+msgid "City:"
+msgstr "மாநகரம்:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:5
+#: ../libempathy-gtk/empathy-contact-widget.c:1247
+msgid "Area:"
+msgstr "வட்டாரம்"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1249
+msgid "Postal Code:"
+msgstr "அஞ்சல் குறி:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1251
+msgid "Street:"
+msgstr "தெரு:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1253
+msgid "Building:"
+msgstr "கட்டிடம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1255
+msgid "Floor:"
+msgstr "தளம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1257
+msgid "Room:"
+msgstr "அறை:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1259
+msgid "Text:"
+msgstr "உரை:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1261
+msgid "Description:"
+msgstr "விவரணம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1263
+msgid "URI:"
+msgstr "யூஆர்ஐ:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1265
+msgid "Accuracy Level:"
+msgstr "பிழையின்மை மட்டம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1267
+msgid "Error:"
+msgstr " பிழை:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1269
+msgid "Vertical Error (meters):"
+msgstr "செங்குத்து பிழை (மீட்டர்கள்):"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1271
+msgid "Horizontal Error (meters):"
+msgstr "கிடைமட்ட பிழை (மீட்டர்கள்):"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1273
+msgid "Speed:"
+msgstr "வேகம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1275
+msgid "Bearing:"
+msgstr "திசை கோணம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1277
+msgid "Climb Speed:"
+msgstr "ஏறும் வேகம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1279
+msgid "Last Updated on:"
+msgstr "கடைசியாக இற்றைப்படுத்தியது:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1281
+msgid "Longitude:"
+msgstr "தீர்கரேகை:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1283
+msgid "Latitude:"
+msgstr "அட்சரேகை:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1285
+msgid "Altitude:"
+msgstr "குத்துயரம்:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1332
+msgid "<b>Location</b>"
+msgstr "<b>இடம்</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1345
+msgid "<b>Location</b>, "
+msgstr "<b>இடம்</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1395
+msgid "%B %e, %Y at %R UTC"
+msgstr "%B %e, %Y  %R யூடுசி (UTC) இல்"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:1
+msgid "<b>Location</b> at (date)\t"
+msgstr "<b>இடம்</b> (date) போது\t"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
 #: ../libempathy-gtk/empathy-new-message-dialog.ui.h:1
 #: ../src/empathy-chatrooms-window.ui.h:1
 #: ../src/empathy-new-chatroom-dialog.ui.h:1
 msgid "Account:"
 msgstr "கணக்கு:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:6
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
 msgid "Alias:"
 msgstr "புனைப்பெயர்:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:7
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:4
 msgid "Birthday:"
 msgstr "பிறந்தநாள்:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:5
+msgid "Client Information"
+msgstr "சார்ந்தோன் தகவல்"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:6
 msgid "Client:"
 msgstr "சார்ந்தோன்:"
 
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:7
+#: ../src/empathy-main-window.c:888
+msgid "Contact"
+msgstr "தொடர்பு"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
+msgid "Contact Details"
+msgstr "தொடர்பு விவரங்கள்"
+
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:9
 msgid "Email:"
 msgstr "மின்னஞ்சல்:"
@@ -828,20 +1068,24 @@ msgstr "மின்னஞ்சல்:"
 msgid "Fullname:"
 msgstr "முழுப்பெயர்:"
 
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:11
+msgid "Groups"
+msgstr "குழுக்கள்"
+
 #. Identifier to connect to Instant Messaging network
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:12
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:13
 msgid "Identifier:"
 msgstr "இனங்காட்டி:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:13
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:14
 msgid "Information requested..."
 msgstr "தகவல் வேண்டுதல்..."
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:14
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:15
 msgid "OS:"
 msgstr "OS:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:15
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:16
 msgid ""
 "Select the groups you want this contact to appear in.  Note that you can "
 "select more than one group or no groups."
@@ -849,15 +1093,15 @@ msgstr ""
 "இந்த தொடர்பு வர வேன்டிய குழுவை தேர்வு செய்க. நீங்கள் ஒன்றுக்கு மேற்பட்ட குழுக்களை தேர்வு "
 "செய்யலாம் அல்லது ஒன்றையும் தேர்வு செய்யாதிருக்கலாம்."
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:16
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:17
 msgid "Version:"
 msgstr "பதிப்பு:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:17
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:18
 msgid "Web site:"
 msgstr "வலைத்தளம்:"
 
-#: ../libempathy-gtk/empathy-contact-widget.ui.h:18
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:19
 msgid "_Add Group"
 msgstr "குழுவை சேர் (_A)"
 
@@ -924,40 +1168,40 @@ msgstr "புதிய உரையாடல்"
 #. COL_DISPLAY_MARKUP
 #. COL_STATUS_CUSTOMISABLE
 #. COL_TYPE
-#: ../libempathy-gtk/empathy-presence-chooser.c:169
+#: ../libempathy-gtk/empathy-presence-chooser.c:172
 msgid "Custom Message..."
 msgstr "தனிப்பயன் செய்தி..."
 
-#: ../libempathy-gtk/empathy-presence-chooser.c:225
+#: ../libempathy-gtk/empathy-presence-chooser.c:227
 msgid "Edit Custom Messages..."
 msgstr "திருத்து- தனிப்பயன் செய்திகள்..."
 
-#: ../libempathy-gtk/empathy-presence-chooser.c:324
+#: ../libempathy-gtk/empathy-presence-chooser.c:326
 msgid "Click to remove this status as a favorite"
 msgstr "இந்த நிலை பிடித்த நிலையாக இருப்பதை நீக்க சொடுக்கவும் "
 
-#: ../libempathy-gtk/empathy-presence-chooser.c:333
+#: ../libempathy-gtk/empathy-presence-chooser.c:335
 msgid "Click to make this status a favorite"
 msgstr "இந்த நிலை பிடித்த நிலையாக ஆக்க சொடுக்கவும் "
 
-#: ../libempathy-gtk/empathy-presence-chooser.c:367
+#: ../libempathy-gtk/empathy-presence-chooser.c:369
 msgid "Set status"
 msgstr "நிலையை அமை"
 
-#: ../libempathy-gtk/empathy-presence-chooser.c:776
+#: ../libempathy-gtk/empathy-presence-chooser.c:782
 msgid "Set your presence and current status"
 msgstr "உங்கள் நடப்பு நிலையையும் இருப்பையௌம் அமை "
 
 #. Custom messages
-#: ../libempathy-gtk/empathy-presence-chooser.c:1011
+#: ../libempathy-gtk/empathy-presence-chooser.c:1017
 msgid "Custom messages..."
 msgstr "தனிப்பயன் செய்திகள்..."
 
-#: ../libempathy-gtk/empathy-status-preset-dialog.c:360
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:362
 msgid "Enter Custom Message"
 msgstr "தனிப்பயன் செய்தியை உள்ளிடுக"
 
-#: ../libempathy-gtk/empathy-status-preset-dialog.c:482
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:521
 msgid "Edit Custom Messages"
 msgstr "தனிப்பயன் செய்திகளை திருத்துக"
 
@@ -977,67 +1221,75 @@ msgstr "ஜிடிகே-சேர்"
 msgid "gtk-remove"
 msgstr "ஜிடிகே-நீக்கு"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:60
+#: ../libempathy-gtk/empathy-theme-manager.c:66
 msgid "Classic"
 msgstr "தொன்மையான"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:61
+#: ../libempathy-gtk/empathy-theme-manager.c:67
 msgid "Simple"
 msgstr "எளிய"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:62
+#: ../libempathy-gtk/empathy-theme-manager.c:68
 msgid "Clean"
 msgstr "சுத்தமான"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:63
+#: ../libempathy-gtk/empathy-theme-manager.c:69
 msgid "Blue"
 msgstr "நீலம்"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1354
+#: ../libempathy-gtk/empathy-theme-manager.c:71
+msgid "Adium"
+msgstr "ஏடியம்"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1378
 msgid "Unable to open URI"
 msgstr "யூஆர்ஐ ஐ திறக்க முடியவில்லை"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1499
+#: ../libempathy-gtk/empathy-ui-utils.c:1468
 msgid "Select a file"
 msgstr "கோப்பை தேர்வு செய்"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1535
+#: ../libempathy-gtk/empathy-ui-utils.c:1526
+msgid "Select a destination"
+msgstr "ஒரு இலக்கிடம் தேர்வு செய்க"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1555
 msgid "Received an instant message"
 msgstr "ஒரு உடனடி செய்தி கிடைக்கப்பெற்றது"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1537
+#: ../libempathy-gtk/empathy-ui-utils.c:1557
 msgid "Sent an instant message"
 msgstr "ஒரு உடனடி செய்தி அனுப்பு"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1539
+#: ../libempathy-gtk/empathy-ui-utils.c:1559
 msgid "Incoming chat request"
 msgstr "உள்வரும் அரட்டை வேண்டுதல்"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1541
+#: ../libempathy-gtk/empathy-ui-utils.c:1561
 msgid "Contact connected"
 msgstr "தொடர்பு இணைக்கப்பட்டது"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1543
+#: ../libempathy-gtk/empathy-ui-utils.c:1563
 msgid "Contact disconnected"
 msgstr "தொடர்பு துண்டிக்கப்பட்டது"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1545
+#: ../libempathy-gtk/empathy-ui-utils.c:1565
 msgid "Connected to server"
 msgstr "சேவையகத்துக்கு இணைக்கப்பட்டது"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1547
+#: ../libempathy-gtk/empathy-ui-utils.c:1567
 msgid "Disconnected from server"
 msgstr "சேவையகத்துக்கு இணைப்பு துண்டிக்கபட்டது"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1549
+#: ../libempathy-gtk/empathy-ui-utils.c:1569
 msgid "Incoming voice call"
 msgstr "உள்வரும் குரல் அழைப்பு"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1551
+#: ../libempathy-gtk/empathy-ui-utils.c:1571
 msgid "Outgoing voice call"
 msgstr "வெளி செல்லும் குரல் அழைப்பு"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1553
+#: ../libempathy-gtk/empathy-ui-utils.c:1573
 msgid "Voice call ended"
 msgstr "குரல் அழைப்பு முடிந்தது"
 
@@ -1212,8 +1464,7 @@ msgstr "வியட்னாம்"
 #. * vim: sw=2 ts=8 cindent noai bs=2
 #.
 #: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:1
-msgid ""
-"The contact to display in the applet. Empty means no contact is displayed."
+msgid "The contact to display in the applet. Empty means no contact is displayed."
 msgstr "சிறுநிரலில் காட்ட வேண்டிய தொடர்பு. காலி எனில் காட்ட தொடர்பு  இல்லை"
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:2
@@ -1239,7 +1490,7 @@ msgid "_Information"
 msgstr "(_I) தகவல்"
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.xml.h:3
-#: ../src/empathy-main-window.ui.h:16
+#: ../src/empathy-main-window.ui.h:18
 msgid "_Preferences"
 msgstr "முன்னுரிமைகள் (_P)"
 
@@ -1260,19 +1511,19 @@ msgstr "இருப்பு"
 msgid "Set your own presence"
 msgstr "உங்கள் இருப்பை அமைக்கவும்"
 
-#: ../src/empathy.c:437
+#: ../src/empathy.c:478
 msgid "Don't connect on startup"
 msgstr "துவங்கும்போது இணைக்க வேண்டாம்"
 
-#: ../src/empathy.c:441
+#: ../src/empathy.c:482
 msgid "Don't show the contact list on startup"
 msgstr "துவங்கும்போது தொடர்பு பட்டியல் ஐ காட்ட வேண்டாம்"
 
-#: ../src/empathy.c:445
+#: ../src/empathy.c:486
 msgid "Show the accounts dialog"
 msgstr "கணக்குகள் உரையாடல் ஐ காட்டு "
 
-#: ../src/empathy.c:457
+#: ../src/empathy.c:498
 msgid "- Empathy Instant Messenger"
 msgstr "- எம்பதி உடனடி செய்தியாளர்"
 
@@ -1316,21 +1567,21 @@ msgstr "க்னோமுக்கு ஒரு உடனடி செய்த
 msgid "translator-credits"
 msgstr "மொழிபெயர்ப்பாளர்-நன்றி அறிதல் "
 
-#: ../src/empathy-accounts-dialog.c:391
+#: ../src/empathy-accounts-dialog.c:393
 msgid "Enabled"
 msgstr "செயலாக்கப்பட்டது"
 
-#: ../src/empathy-accounts-dialog.c:401 ../src/empathy-accounts-dialog.ui.h:4
+#: ../src/empathy-accounts-dialog.c:403 ../src/empathy-accounts-dialog.ui.h:1
 msgid "Accounts"
 msgstr "கணக்குகள்"
 
 #. To translator: %s is the protocol name
-#: ../src/empathy-accounts-dialog.c:834
+#: ../src/empathy-accounts-dialog.c:837
 #, c-format
 msgid "New %s account"
 msgstr "புதிய %s கணக்கு"
 
-#: ../src/empathy-accounts-dialog.c:944
+#: ../src/empathy-accounts-dialog.c:950
 #, c-format
 msgid ""
 "You are about to remove your %s account!\n"
@@ -1339,7 +1590,7 @@ msgstr ""
 "நீங்கள் உங்கள் %s கணக்கை நீக்கப்போகிறீர்கள்!\n"
 "நிச்சயம் தொடர வேண்டுமா?"
 
-#: ../src/empathy-accounts-dialog.c:950
+#: ../src/empathy-accounts-dialog.c:956
 msgid ""
 "Any associated conversations and chat rooms will NOT be removed if you "
 "decide to proceed.\n"
@@ -1352,30 +1603,30 @@ msgstr ""
 "\n"
 "ஒரு வேளை பின்னொரு சமயம் கணக்கை புதுப்பிக்க எண்ணினால் அவை கிடைக்கும்."
 
-#: ../src/empathy-accounts-dialog.ui.h:1
-msgid "<b>New Account</b>"
-msgstr "<b> புதிய கணக்கு</b>"
-
 #: ../src/empathy-accounts-dialog.ui.h:2
-msgid "<b>No protocol installed</b>"
-msgstr "<b>நெறிமுறைகள் ஏதும் நிறுவவில்லை</b>"
+msgid "Add Account"
+msgstr "கணக்கு சேர்"
 
 #: ../src/empathy-accounts-dialog.ui.h:3
-msgid "<b>Settings</b>"
-msgstr "<b> அமைப்புகள்</b>"
-
-#: ../src/empathy-accounts-dialog.ui.h:5
 msgid "Cr_eate"
 msgstr "(_e) உருவாக்கு"
 
-#: ../src/empathy-accounts-dialog.ui.h:6
-msgid "I already have an account I want to use"
-msgstr "நானà¯\8d à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dத à®\8fà®±à¯\8dà®\95à¯\86னà¯\86வà¯\87 à®\92à®°à¯\81 à®\95ணà®\95à¯\8dà®\95à¯\81 à®\89ளà¯\8dளதà¯\81"
+#: ../src/empathy-accounts-dialog.ui.h:4
+msgid "Gmail"
+msgstr "à®\9cிமà¯\86யà¯\8dலà¯\8d"
 
-#: ../src/empathy-accounts-dialog.ui.h:7
+#: ../src/empathy-accounts-dialog.ui.h:5
 msgid "Import Accounts..."
 msgstr "கணக்குகளை இறக்குமதி செய்க..."
 
+#: ../src/empathy-accounts-dialog.ui.h:6
+msgid "No protocol installed"
+msgstr "நெறிமுறைகள் ஏதும் நிறுவவில்லை"
+
+#: ../src/empathy-accounts-dialog.ui.h:7
+msgid "Settings"
+msgstr "அமைப்புகள்"
+
 #: ../src/empathy-accounts-dialog.ui.h:8
 msgid ""
 "To add a new account, you first have to install a backend for each protocol "
@@ -1392,53 +1643,61 @@ msgstr "வகை:"
 msgid "_Add..."
 msgstr "சேர்... (_A)"
 
-#: ../src/empathy-call-window.c:370
+#: ../src/empathy-accounts-dialog.ui.h:11
+msgid "_Create a new account"
+msgstr "(_C) ஒரு புதிய கணக்கை துவக்கு"
+
+#: ../src/empathy-accounts-dialog.ui.h:12
+msgid "_Reuse an existing account"
+msgstr "(_R) இருக்கும் ஒரு கணக்கை மறு உபயோகம் செய்க"
+
+#: ../src/empathy-call-window.c:63
+msgid "Connecting..."
+msgstr "இணைக்கிறது...."
+
+#: ../src/empathy-call-window.c:415
 msgid "Contrast"
 msgstr "வேறுபாடு"
 
-#: ../src/empathy-call-window.c:373
+#: ../src/empathy-call-window.c:418
 msgid "Brightness"
 msgstr "வெளிச்சம்"
 
-#: ../src/empathy-call-window.c:376
+#: ../src/empathy-call-window.c:421
 msgid "Gamma"
 msgstr "காமா"
 
-#: ../src/empathy-call-window.c:480
+#: ../src/empathy-call-window.c:526
 msgid "Volume"
 msgstr "ஒலி அளவு"
 
-#: ../src/empathy-call-window.c:592
+#: ../src/empathy-call-window.c:728
 msgid "_Sidebar"
 msgstr "பக்கப்பட்டை(_S)"
 
-#: ../src/empathy-call-window.c:611
+#: ../src/empathy-call-window.c:747
 msgid "Dialpad"
 msgstr "டயல் அட்டை"
 
-#: ../src/empathy-call-window.c:617
+#: ../src/empathy-call-window.c:753
 msgid "Audio input"
 msgstr "ஒலி உள்ளீடு"
 
-#: ../src/empathy-call-window.c:621
+#: ../src/empathy-call-window.c:757
 msgid "Video input"
 msgstr "வீடியோ உள்ளீடு"
 
-#: ../src/empathy-call-window.c:645
-msgid "Connecting..."
-msgstr "இணைக்கிறது...."
-
-#: ../src/empathy-call-window.c:660
+#: ../src/empathy-call-window.c:820
 #, c-format
 msgid "Call with %s"
 msgstr "%s ஆல் அழை "
 
-#: ../src/empathy-call-window.c:694
+#: ../src/empathy-call-window.c:889
 msgid "Call"
 msgstr "அழை"
 
 #. Translators: number of minutes:seconds the caller has been connected
-#: ../src/empathy-call-window.c:971
+#: ../src/empathy-call-window.c:1308
 #, c-format
 msgid "Connected — %d:%02dm"
 msgstr "இணைக்கப்பட்டது — %d:%02dm"
@@ -1448,43 +1707,38 @@ msgid "Hang up"
 msgstr "துண்டி"
 
 #: ../src/empathy-call-window.ui.h:2
+msgid "Redial"
+msgstr "மறு முயற்சி"
+
+#: ../src/empathy-call-window.ui.h:3
 msgid "Send Audio"
 msgstr "ஒலி அனுப்பு "
 
-#: ../src/empathy-call-window.ui.h:3
+#: ../src/empathy-call-window.ui.h:4
 msgid "Send video"
 msgstr "விடியோ அனுப்பு"
 
-#: ../src/empathy-call-window.ui.h:4
+#: ../src/empathy-call-window.ui.h:5
 msgid "Video preview"
 msgstr "ஒளித்தோற்ற முன்னோட்டம்"
 
-#: ../src/empathy-call-window.ui.h:5
+#: ../src/empathy-call-window.ui.h:6
 msgid "_Call"
 msgstr "(_C) அழை"
 
-#: ../src/empathy-call-window.ui.h:6
+#: ../src/empathy-call-window.ui.h:7 ../src/empathy-main-window.ui.h:21
 msgid "_View"
 msgstr "பார்வை (_V)"
 
-#: ../src/empathy-chat-window.c:308
+#: ../src/empathy-chat-window.c:343
 #, c-format
 msgid "Conversations (%d)"
 msgstr "உரையாடல்கள் (%d)"
 
-#: ../src/empathy-chat-window.c:413
-msgid "Topic:"
-msgstr "தலைப்பு:"
-
-#: ../src/empathy-chat-window.c:418
+#: ../src/empathy-chat-window.c:475
 msgid "Typing a message."
 msgstr "செய்திகள் தட்டச்சிடல்"
 
-#: ../src/empathy-chat-window.c:889 ../src/empathy-event-manager.c:429
-#, c-format
-msgid "New message from %s"
-msgstr "%s இடமிருந்து புதிய செய்திகள்"
-
 #: ../src/empathy-chatrooms-window.c:258
 msgid "Name"
 msgstr "பெயர்"
@@ -1518,59 +1772,58 @@ msgstr "(_R) ஏற்காதே"
 msgid "_Answer"
 msgstr "(_A) பதிலளி"
 
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:505
 #, c-format
 msgid "Incoming call from %s"
 msgstr "%s இடமிருந்து உள்வரும் அழைப்பு"
 
-#: ../src/empathy-event-manager.c:547
+#: ../src/empathy-event-manager.c:545
 #, c-format
 msgid "%s is offering you an invitation"
 msgstr "%s உங்களுக்கு ஒரு அழைப்பு வேண்டுதல் விடுக்கிறார்"
 
-#: ../src/empathy-event-manager.c:553
+#: ../src/empathy-event-manager.c:551
 msgid "An external application will be started to handle it."
 msgstr "இதை கையாள ஒரு வெளி பயன்பாடு துவக்கப்படும்."
 
-#: ../src/empathy-event-manager.c:558
+#: ../src/empathy-event-manager.c:556
 msgid "You don't have the needed external application to handle it."
 msgstr "இதை கையாள தேவையான ஒரு வெளி பயன்பாடு உங்கள் கணினியில் இல்லை."
 
-#: ../src/empathy-event-manager.c:685
+#: ../src/empathy-event-manager.c:683
 msgid "Room invitation"
 msgstr "அறை அழைப்பு"
 
-#: ../src/empathy-event-manager.c:688
+#: ../src/empathy-event-manager.c:686
 #, c-format
 msgid "%s is inviting you to join %s"
 msgstr "%s உங்களை %s உடன் சேர அழைக்கிறார்."
 
-#. Decline button
-#: ../src/empathy-event-manager.c:696 ../src/empathy-ft-manager.c:1037
+#: ../src/empathy-event-manager.c:694
 msgid "_Decline"
 msgstr "நிராகரி (_D)"
 
-#: ../src/empathy-event-manager.c:701
-#: ../src/empathy-new-chatroom-dialog.ui.h:6
+#: ../src/empathy-event-manager.c:699
+#: ../src/empathy-new-chatroom-dialog.ui.h:7
 msgid "_Join"
 msgstr "(_J) இணை"
 
-#: ../src/empathy-event-manager.c:740
+#: ../src/empathy-event-manager.c:738
 #, c-format
 msgid "%s invited you to join %s"
 msgstr "%s  %s இல் சேர உங்களை அழைத்துள்ளார்"
 
-#: ../src/empathy-event-manager.c:848
+#: ../src/empathy-event-manager.c:764
 #, c-format
 msgid "Incoming file transfer from %s"
 msgstr "%s இடமிருந்து உள்வரும் கோப்பு பரிமாற்றம்."
 
-#: ../src/empathy-event-manager.c:923
+#: ../src/empathy-event-manager.c:944
 #, c-format
 msgid "Subscription requested by %s"
 msgstr "%s இன் சந்தா வேண்டுதல்"
 
-#: ../src/empathy-event-manager.c:927
+#: ../src/empathy-event-manager.c:948
 #, c-format
 msgid ""
 "\n"
@@ -1580,159 +1833,110 @@ msgstr ""
 "செய்தி: %s"
 
 #. Translators: time left, when it is more than one hour
-#: ../src/empathy-ft-manager.c:114
+#: ../src/empathy-ft-manager.c:101
 #, c-format
 msgid "%u:%02u.%02u"
 msgstr "%u:%02u.%02u"
 
 #. Translators: time left, when is is less than one hour
-#: ../src/empathy-ft-manager.c:117
+#: ../src/empathy-ft-manager.c:104
 #, c-format
 msgid "%02u.%02u"
 msgstr "%02u.%02u"
 
-#: ../src/empathy-ft-manager.c:166
-msgid "No reason was specified"
-msgstr "காரணம் குறிப்பிடவில்லை"
-
-#: ../src/empathy-ft-manager.c:168
-msgid "The change in state was requested"
-msgstr "நிலையில் மாற்றம் வேண்டப்பட்டது"
-
-#: ../src/empathy-ft-manager.c:170
-msgid "You canceled the file transfer"
-msgstr "நீங்கள் கோப்பு பரி மாற்றத்தை ரத்து செய்தீர்கள்"
-
-#: ../src/empathy-ft-manager.c:172
-msgid "The other participant canceled the file transfer"
-msgstr "மற்ற பங்குதாரர் கோப்பு பரி மாற்றத்தை ரத்து செய்தார்."
-
-#: ../src/empathy-ft-manager.c:174
-msgid "Error while trying to transfer the file"
-msgstr "கோப்பு பரி மாற்றத்தில்  பிழை "
+#: ../src/empathy-ft-manager.c:180
+msgctxt "file transfer percent"
+msgid "Unknown"
+msgstr "தெரியாத"
 
-#: ../src/empathy-ft-manager.c:176
-msgid "The other participant is unable to transfer the file"
-msgstr "மற்ற பங்குதாரர் கோப்பு பரி மாற்றத்தை செய்ய முடியவில்லை."
+#: ../src/empathy-ft-manager.c:275
+#, c-format
+msgid "%s of %s at %s/s"
+msgstr "%s %sல் %s/s இல்"
 
-#: ../src/empathy-ft-manager.c:178
-msgid "Unknown reason"
-msgstr "தெரியாத காரணம்"
+#: ../src/empathy-ft-manager.c:276
+#, c-format
+msgid "%s of %s"
+msgstr "%s %sல் "
 
 #. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:228
+#: ../src/empathy-ft-manager.c:307
 #, c-format
 msgid "Receiving \"%s\" from %s"
 msgstr " \"%s\" ஐ %s இடமிருந்து பெறுகிறது"
 
 #. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:231
+#: ../src/empathy-ft-manager.c:310
 #, c-format
 msgid "Sending \"%s\" to %s"
 msgstr "\"%s\" ஐ %s க்கு அனுப்புகிறது"
 
-#: ../src/empathy-ft-manager.c:242
-msgctxt "file size"
-msgid "Unknown"
-msgstr "தெரியாத"
+#. translators: first %s is filename, second %s
+#. * is the contact name
+#: ../src/empathy-ft-manager.c:340
+#, c-format
+msgid "Error receiving \"%s\" from %s"
+msgstr " \"%s\" ஐ %s இடமிருந்து பெறுகையில் பிழை"
 
-#. translators: first %s is the transferred size, second %s is
-#. * the total file size
-#: ../src/empathy-ft-manager.c:251
+#: ../src/empathy-ft-manager.c:343
+msgid "Error receiving a file"
+msgstr "கோப்பு பெறுகையில் பிழை"
+
+#: ../src/empathy-ft-manager.c:348
 #, c-format
-msgid "%s of %s at %s/s"
-msgstr "%s %sல் %s/s இல்"
+msgid "Error sending \"%s\" to %s"
+msgstr "\"%s\" ஐ %s க்கு அனுப்புகையில் பிழை"
 
-#: ../src/empathy-ft-manager.c:259
-msgid "Waiting for the other participant's response"
-msgstr "மறà¯\8dà®± à®ªà®\99à¯\8dà®\95à¯\87à®±à¯\8dபாளரினà¯\8d à®ªà®¤à®¿à®²à¯\81à®\95à¯\8dà®\95à¯\81 à®\95ாதà¯\8dதிரà¯\81தà¯\8dதலà¯\8d"
+#: ../src/empathy-ft-manager.c:351
+msgid "Error sending a file"
+msgstr "à®\95à¯\8bபà¯\8dபà¯\81 à®\85னà¯\81பà¯\8dபà¯\81வதிலà¯\8d à®ªà®¿à®´à¯\88"
 
-#: ../src/empathy-ft-manager.c:269
+#. translators: first %s is filename, second %s
+#. * is the contact name
+#: ../src/empathy-ft-manager.c:490
 #, c-format
 msgid "\"%s\" received from %s"
 msgstr "\"%s\"  %s இடமிருந்து கிடைத்தது"
 
-#: ../src/empathy-ft-manager.c:275
+#. translators: first %s is filename, second %s
+#. * is the contact name
+#: ../src/empathy-ft-manager.c:495
 #, c-format
 msgid "\"%s\" sent to %s"
 msgstr "\"%s\" %s க்கு அனுப்பப்பட்டது"
 
-#: ../src/empathy-ft-manager.c:278
+#: ../src/empathy-ft-manager.c:498
 msgid "File transfer completed"
 msgstr "கோப்பு பறிமாற்றம் முடிந்தது"
 
-#: ../src/empathy-ft-manager.c:287
-#, c-format
-msgid "\"%s\" receiving from %s"
-msgstr "\"%s\" %s இடமிருந்து பெறப்படுகிறது"
+#: ../src/empathy-ft-manager.c:617 ../src/empathy-ft-manager.c:784
+msgid "Waiting for the other participant's response"
+msgstr "மற்ற பங்கேற்பாளரின் பதிலுக்கு காத்திருத்தல்"
 
-#: ../src/empathy-ft-manager.c:293
+#: ../src/empathy-ft-manager.c:643 ../src/empathy-ft-manager.c:681
 #, c-format
-msgid "\"%s\" sending to %s"
-msgstr "\"%s\"  %s க்கு அனுப்பப்படுகிறது"
+msgid "Checking integrity of \"%s\""
+msgstr " \"%s\" இன் நம்பகத்தன்மையை சோதிக்கிறது"
 
-#: ../src/empathy-ft-manager.c:296
+#: ../src/empathy-ft-manager.c:646 ../src/empathy-ft-manager.c:684
 #, c-format
-msgid "File transfer canceled: %s"
-msgstr "கோப்பு பறிமாற்றம் ரத்து செய்யப்பட்டது.: %s"
-
-#: ../src/empathy-ft-manager.c:310
-msgctxt "remaining time"
-msgid "Stalled"
-msgstr "Stalled"
-
-#: ../src/empathy-ft-manager.c:313
-msgctxt "remaining time"
-msgid "Unknown"
-msgstr "தெரியாத"
-
-#: ../src/empathy-ft-manager.c:372
-msgctxt "file transfer percent"
-msgid "Unknown"
-msgstr "தெரியாத"
+msgid "Hashing \"%s\""
+msgstr " \"%s\" இன் ஹாஷ் மதிப்பை கணக்கிடுகிறது"
 
-#: ../src/empathy-ft-manager.c:668
+#: ../src/empathy-ft-manager.c:1024
 msgid "%"
 msgstr "%"
 
-#: ../src/empathy-ft-manager.c:680
+#: ../src/empathy-ft-manager.c:1036
 msgid "File"
 msgstr "கோப்பு"
 
-#: ../src/empathy-ft-manager.c:702
+#: ../src/empathy-ft-manager.c:1058
 msgid "Remaining"
 msgstr "மீதமுள்ளவை"
 
-#: ../src/empathy-ft-manager.c:900
-msgid "Cannot save file to this location"
-msgstr "இந்த இடத்தில் கோப்பை சேமிக்க முடியவில்லை"
-
-#: ../src/empathy-ft-manager.c:946
-msgid "Save file as..."
-msgstr "கோப்பை இவ்வாறு சேமி..."
-
-#: ../src/empathy-ft-manager.c:1016
-msgid "unknown size"
-msgstr "தெரியாத அளவு"
-
-#: ../src/empathy-ft-manager.c:1022
-#, c-format
-msgid "%s would like to send you a file"
-msgstr " %s உங்களுக்கு ஒரு  கோப்பை அனுப்ப விழைகிறார்."
-
-#. Translators: the first %s is the file name, the second %s is the file size
-#: ../src/empathy-ft-manager.c:1028
-#, c-format
-msgid "Do you want to accept the file \"%s\" (%s)?"
-msgstr "கோப்பு \"%s\" (%s) ஐ ஏற்க விருப்பமா?"
-
-#. Accept button
-#: ../src/empathy-ft-manager.c:1046
-msgid "_Accept"
-msgstr "ஏற்றுக்கொள் (_A)"
-
 #: ../src/empathy-ft-manager.ui.h:1
-msgid "File transfers"
+msgid "File Transfers"
 msgstr "கோப்பு பறிமாற்றங்கள் "
 
 #: ../src/empathy-ft-manager.ui.h:2
@@ -1766,139 +1970,147 @@ msgstr ""
 msgid "Import Accounts"
 msgstr "இறக்குமதி செய் கணக்குகள்"
 
-#: ../src/empathy-main-window.c:393
+#: ../src/empathy-main-window.c:395
 msgid "_Edit account"
 msgstr "(_E) கணக்குகளை திருத்துக"
 
-#: ../src/empathy-main-window.c:496
+#: ../src/empathy-main-window.c:498
 msgid "No error specified"
 msgstr "பிழை ஏதும் குறிப்பிடவில்லை"
 
-#: ../src/empathy-main-window.c:499
+#: ../src/empathy-main-window.c:501
 msgid "Network error"
 msgstr "வலையமைப்பு பிழை"
 
-#: ../src/empathy-main-window.c:502
+#: ../src/empathy-main-window.c:504
 msgid "Authentication failed"
 msgstr "உறுதி செய்தல் தோல்வி"
 
-#: ../src/empathy-main-window.c:505
+#: ../src/empathy-main-window.c:507
 msgid "Encryption error"
 msgstr "மறையாக்க பிழை"
 
-#: ../src/empathy-main-window.c:508
+#: ../src/empathy-main-window.c:510
 msgid "Name in use"
 msgstr "பயனில் உள்ள பெயர் "
 
-#: ../src/empathy-main-window.c:511
+#: ../src/empathy-main-window.c:513
 msgid "Certificate not provided"
 msgstr "சான்றிதழ் தரப்படவில்லை"
 
-#: ../src/empathy-main-window.c:514
+#: ../src/empathy-main-window.c:516
 msgid "Certificate untrusted"
 msgstr "சான்றிதழில் நம்பக தன்மை இல்லை"
 
-#: ../src/empathy-main-window.c:517
+#: ../src/empathy-main-window.c:519
 msgid "Certificate expired"
 msgstr "சான்றிதழ் காலாவதியானது"
 
-#: ../src/empathy-main-window.c:520
+#: ../src/empathy-main-window.c:522
 msgid "Certificate not activated"
 msgstr "சான்றிதழ் செயல்படுத்தப்படவில்லை"
 
-#: ../src/empathy-main-window.c:523
+#: ../src/empathy-main-window.c:525
 msgid "Certificate hostname mismatch"
 msgstr "சான்றிதழ் புரவலன் பெயர் ஒத்திசையவில்லை"
 
-#: ../src/empathy-main-window.c:526
+#: ../src/empathy-main-window.c:528
 msgid "Certificate fingerprint mismatch"
 msgstr "சான்றிதழ் அடையாளம் ஒத்திசையவில்லை"
 
-#: ../src/empathy-main-window.c:529
+#: ../src/empathy-main-window.c:531
 msgid "Certificate self-signed"
 msgstr "சான்றிதழ் தானே கையெழுத்திட்டது"
 
-#: ../src/empathy-main-window.c:532
+#: ../src/empathy-main-window.c:534
 msgid "Certificate error"
 msgstr "சான்றிதழ் பிழை"
 
-#: ../src/empathy-main-window.c:535
+#: ../src/empathy-main-window.c:537
 msgid "Unknown error"
 msgstr "தெரியாத பிழை"
 
-#: ../src/empathy-main-window.c:877
-msgid "Contact"
-msgstr "தொடர்பு"
-
-#: ../src/empathy-main-window.c:1194
+#: ../src/empathy-main-window.c:1220
 msgid "Show and edit accounts"
 msgstr "கணக்குகளை காட்டவும் மற்றும் திருத்தவும் "
 
-#: ../src/empathy-main-window.ui.h:1
+#: ../src/empathy-main-window.ui.h:1 ../src/empathy-preferences.ui.h:10
 msgid "Contact List"
 msgstr "தொடர்பு பட்டியல்"
 
 #: ../src/empathy-main-window.ui.h:2
+msgid "Contacts on a _Map"
+msgstr "(_M) தொடர்புகளை படத்தில் காட்டு "
+
+#: ../src/empathy-main-window.ui.h:3
 msgid "Context"
 msgstr "சூழல்"
 
-#: ../src/empathy-main-window.ui.h:3
+#: ../src/empathy-main-window.ui.h:4
 msgid "Join _Favorites"
 msgstr "(_F) விருப்பங்கள் சேர் "
 
-#: ../src/empathy-main-window.ui.h:4
+#: ../src/empathy-main-window.ui.h:5
 msgid "Manage Favorites"
 msgstr "விருப்பங்களை மேலாளுக"
 
-#: ../src/empathy-main-window.ui.h:5
-msgid "Show _File Transfers"
-msgstr "(_F) கோப்பு பறிமாற்றங்களை காட்டுக"
-
 #: ../src/empathy-main-window.ui.h:6
-msgid "Show _Offline Contacts"
-msgstr "(_O) இணைப்பு விலகி உள்ள தொடர்புகள் ஐ காட்டுக"
-
-#: ../src/empathy-main-window.ui.h:7
 msgid "_Accounts"
 msgstr "கணக்குகள் (_A)"
 
-#: ../src/empathy-main-window.ui.h:8
+#: ../src/empathy-main-window.ui.h:7
 msgid "_Add Contact..."
 msgstr "(_A) தொடர்பை  சேர்..."
 
-#: ../src/empathy-main-window.ui.h:10
+#: ../src/empathy-main-window.ui.h:9
 msgid "_Contents"
 msgstr "உள்ளடக்கங்கள் (_C)"
 
+#: ../src/empathy-main-window.ui.h:10
+msgid "_Debug"
+msgstr "(_D) வழு நீக்கு"
+
 #: ../src/empathy-main-window.ui.h:12
+msgid "_File Transfers"
+msgstr "(_F) கோப்பு பறிமாற்றங்கள் "
+
+#: ../src/empathy-main-window.ui.h:13
 msgid "_Help"
 msgstr "உதவி (_H)"
 
-#: ../src/empathy-main-window.ui.h:13
+#: ../src/empathy-main-window.ui.h:14
 msgid "_Join..."
 msgstr "(_J) சேர்..."
 
-#: ../src/empathy-main-window.ui.h:14 ../src/empathy-status-icon.ui.h:2
+#: ../src/empathy-main-window.ui.h:15 ../src/empathy-status-icon.ui.h:2
 msgid "_New Conversation..."
 msgstr "(_N) புதிய உரையாடல்..."
 
-#: ../src/empathy-main-window.ui.h:15
+#: ../src/empathy-main-window.ui.h:16
+msgid "_Offline Contacts"
+msgstr "(_O) இணைப்பு விலகி உள்ள தொடர்புகள்"
+
+#: ../src/empathy-main-window.ui.h:17
 msgid "_Personal Information"
 msgstr "(_P) தனிப்பட்ட தகவல்"
 
-#: ../src/empathy-main-window.ui.h:17
+#: ../src/empathy-main-window.ui.h:19
+msgid "_Previous Conversations"
+msgstr "(_P) முந்தைய உரையாடல்கள்"
+
+#: ../src/empathy-main-window.ui.h:20
 msgid "_Room"
 msgstr "(_R) அறை"
 
-#: ../src/empathy-new-chatroom-dialog.c:319
+#: ../src/empathy-new-chatroom-dialog.c:332
 msgid "Chat Room"
 msgstr "அரட்டை அறை"
 
-#: ../src/empathy-new-chatroom-dialog.c:335
+#: ../src/empathy-new-chatroom-dialog.c:348
 msgid "Members"
 msgstr "உறுப்பினர்கள்"
 
-#: ../src/empathy-new-chatroom-dialog.c:464
+#: ../src/empathy-new-chatroom-dialog.c:492
 #, c-format
 msgctxt ""
 "Room/Join's roomlist tooltip. Parametersare a channel name, yes/no, yes/no "
@@ -1910,28 +2122,39 @@ msgid ""
 "Members: %s"
 msgstr ""
 "<b>%s</b>\n"
-"Invite required: %s\n"
-"Password required: %s\n"
-"Members: %s"
+"அழைப்பு தேவை: %s\n"
+"கடவுச்சொல் தேவை: %s\n"
+"உறுப்பினர்கள்: %s"
 
-#: ../src/empathy-new-chatroom-dialog.c:466
-#: ../src/empathy-new-chatroom-dialog.c:467
+#: ../src/empathy-new-chatroom-dialog.c:494
+#: ../src/empathy-new-chatroom-dialog.c:495
 msgid "Yes"
 msgstr "ஆம்"
 
-#: ../src/empathy-new-chatroom-dialog.c:466
-#: ../src/empathy-new-chatroom-dialog.c:467
+#: ../src/empathy-new-chatroom-dialog.c:494
+#: ../src/empathy-new-chatroom-dialog.c:495
 msgid "No"
 msgstr "இல்லை"
 
+#: ../src/empathy-new-chatroom-dialog.c:522
+msgid "Could not start room listing"
+msgstr "அறை பட்டியலை எடுப்பதை துவக்க முடியவில்லை"
+
+#: ../src/empathy-new-chatroom-dialog.c:532
+msgid "Could not stop room listing"
+msgstr "அறை பட்டியலை எடுப்பதை நிறுத்த முடியவில்லை"
+
 #: ../src/empathy-new-chatroom-dialog.ui.h:2
-msgid ""
-"Enter the room name to join here or click on one or more rooms in the list."
+msgid "Couldn't load room list"
+msgstr "அறை பட்டியலை ஏற்ற முடியவில்லை"
+
+#: ../src/empathy-new-chatroom-dialog.ui.h:3
+msgid "Enter the room name to join here or click on one or more rooms in the list."
 msgstr ""
 "சேருவதற்கான அறை பெயரை இங்கு உள்ளிடுக. அல்லது பட்டியலில் உள்ள ஒன்றோ மேற்பட்ட பெயர்களையோ "
 "சொடுக்குக."
 
-#: ../src/empathy-new-chatroom-dialog.ui.h:3
+#: ../src/empathy-new-chatroom-dialog.ui.h:4
 msgid ""
 "Enter the server which hosts the room, or leave it empty if the room is on "
 "the current account's server"
@@ -1939,158 +2162,206 @@ msgstr ""
 "அறையை தரும் சேவையகத்தின் பெயரை இங்கு உள்ளிடுக. அல்லது அது நடப்பு சேவையகத்தில் இருந்தால் "
 "வெற்றாக விடவும்."
 
-#: ../src/empathy-new-chatroom-dialog.ui.h:4
+#: ../src/empathy-new-chatroom-dialog.ui.h:5
 msgid "Join Room"
 msgstr "அறை இல் சேர் "
 
-#: ../src/empathy-new-chatroom-dialog.ui.h:5
+#: ../src/empathy-new-chatroom-dialog.ui.h:6
 msgid "Room List"
 msgstr "அறை பட்டியல்"
 
-#: ../src/empathy-new-chatroom-dialog.ui.h:7
+#: ../src/empathy-new-chatroom-dialog.ui.h:8
 msgid "_Room:"
 msgstr "(_R) அறை:"
 
-#: ../src/empathy-preferences.c:156
+#: ../src/empathy-preferences.c:159
 msgid "Message received"
 msgstr "தகவல் பெறப்பட்டது"
 
-#: ../src/empathy-preferences.c:157
+#: ../src/empathy-preferences.c:160
 msgid "Message sent"
 msgstr "தகவல் அனுப்பப்பட்டது"
 
-#: ../src/empathy-preferences.c:158
+#: ../src/empathy-preferences.c:161
 msgid "New conversation"
 msgstr "புதிய உரையாடல்"
 
-#: ../src/empathy-preferences.c:159
+#: ../src/empathy-preferences.c:162
 msgid "Contact goes online"
 msgstr "தொடர்பு இணைபில் வருகிறார்"
 
-#: ../src/empathy-preferences.c:160
+#: ../src/empathy-preferences.c:163
 msgid "Contact goes offline"
 msgstr "தொடர்பு இணைப்பு விலகி செல்கிறார்"
 
-#: ../src/empathy-preferences.c:161
+#: ../src/empathy-preferences.c:164
 msgid "Account connected"
 msgstr "கணக்கு இணைக்கப்பட்டது"
 
-#: ../src/empathy-preferences.c:162
+#: ../src/empathy-preferences.c:165
 msgid "Account disconnected"
 msgstr "கணக்கு இணைப்பு நீக்கப்பட்டது"
 
-#: ../src/empathy-preferences.c:397
+#: ../src/empathy-preferences.c:432
 msgid "Language"
 msgstr "மொழி"
 
 #: ../src/empathy-preferences.ui.h:1
-msgid "<b>Appearance</b>"
-msgstr "<b>தோற்றம்</b>"
+msgid "Adium theme to use:"
+msgstr "பயன்படுத்த வேண்டிய ஏடியம்  கருத்து:"
 
 #: ../src/empathy-preferences.ui.h:2
-msgid "<b>Behavior</b>"
-msgstr "<b>நடத்தை</b>"
+msgid "Allow _GPS usage"
+msgstr "(_G) ஜிபிஎஸ் பயனை அனுமதி"
 
 #: ../src/empathy-preferences.ui.h:3
-msgid "<b>Contact List</b>"
-msgstr "<b> தொடர்பு பட்டியல்</b>"
+msgid "Allow _cellphone usage"
+msgstr "(_c)  அலைபேசி பயனை அனுமதி"
 
 #: ../src/empathy-preferences.ui.h:4
-msgid "<b>Enable spell checking for languages:</b>"
-msgstr "<b>மொழிகளுக்கு எழுத்து பிழை திருத்தத்தை செயல்படுத்து</b>"
+msgid "Allow _network usage"
+msgstr "(_n)  வலைப்பின்னல் பயனை அனுமதி"
 
 #: ../src/empathy-preferences.ui.h:5
-msgid "<b>Play sound for events</b>"
-msgstr "<b>நிகழ்வுகளுக்கு ஒலியை இயக்கு</b>"
+msgid "Appearance"
+msgstr "தோற்றம்"
 
 #: ../src/empathy-preferences.ui.h:6
-msgid ""
-"<small>The list of languages reflects only the languages for which you have "
-"a dictionary installed.</small>"
-msgstr ""
-"<small>இந்த பட்டியல் நீங்கள் எந்த மொழிகளுக்கு அகராதி நிறுவி இருக்கிறீர்களோ அவற்றை மட்டுமே "
-"காட்டுகிறது</small>"
-
-#: ../src/empathy-preferences.ui.h:7
 msgid "Automatically _connect on startup "
 msgstr "(_c) துவங்கும்போது தானியங்கியாக இணை"
 
-#: ../src/empathy-preferences.ui.h:8
+#: ../src/empathy-preferences.ui.h:7
 msgid "Avatars are user chosen images shown in the contact list"
 msgstr "அவதாரங்கள் என்பது தொடர்பு பட்டியலில் காணப்படும் பயனர் தேர்ந்தெடுத்த பிம்பங்கள்"
 
+#: ../src/empathy-preferences.ui.h:8
+msgid "Behavior"
+msgstr "நடத்தை"
+
 #: ../src/empathy-preferences.ui.h:9
 msgid "Chat Th_eme:"
 msgstr "(_e) அரட்டை கருத்து:"
 
-#: ../src/empathy-preferences.ui.h:10
+#: ../src/empathy-preferences.ui.h:11
 msgid "Disable notifications when _away or busy"
 msgstr "(_a) வெளியே  அல்லது வேலையில் உள்ளபோது அறிவிப்புகளை செயல் நீக்கு"
 
-#: ../src/empathy-preferences.ui.h:11
+#: ../src/empathy-preferences.ui.h:12
 msgid "Disable sounds when _away or busy"
 msgstr "(_a) வெளியே  அல்லது வேலையில் உள்ளபோது ஒலிகளை செயல் நீக்கு"
 
-#: ../src/empathy-preferences.ui.h:12
+#: ../src/empathy-preferences.ui.h:13
 msgid "Enable notifications when the _chat is not focused"
 msgstr "(_c) அரட்டை குவிப்பில் இல்லாத போது அறிவிப்புகளை செயல்படுத்து"
 
-#: ../src/empathy-preferences.ui.h:13
+#: ../src/empathy-preferences.ui.h:14
+msgid "Enable spell checking for languages:"
+msgstr "மொழிகளுக்கு எழுத்து பிழை திருத்தத்தை செயல்படுத்து:"
+
+#: ../src/empathy-preferences.ui.h:15
 msgid "General"
 msgstr "பொது"
 
-#: ../src/empathy-preferences.ui.h:14
+#: ../src/empathy-preferences.ui.h:16
+msgid "Geoclue Settings"
+msgstr "ஜியோ க்ளூ அமைப்புகள்"
+
+#: ../src/empathy-preferences.ui.h:17
+msgid "Location"
+msgstr "இடம்"
+
+#: ../src/empathy-preferences.ui.h:18
+msgid "Not a valid adium theme"
+msgstr "செல்லுபடியாகும் ஏடியம் கருத்து அல்ல"
+
+#: ../src/empathy-preferences.ui.h:19
 msgid "Notifications"
 msgstr "அறிவிப்புகள்"
 
-#: ../src/empathy-preferences.ui.h:15
+#: ../src/empathy-preferences.ui.h:20
+msgid "Play sound for events"
+msgstr "நிகழ்வுகளுக்கு ஒலியை இயக்கு"
+
+#: ../src/empathy-preferences.ui.h:21
 msgid "Preferences"
 msgstr "விருப்பங்கள்"
 
-#: ../src/empathy-preferences.ui.h:16
+#: ../src/empathy-preferences.ui.h:22
+msgid "Privacy"
+msgstr "அந்தரங்கம்"
+
+#: ../src/empathy-preferences.ui.h:23
+msgid ""
+"Reduced location accuracy means that nothing more precise than your city, "
+"state and country will be published.  GPS coordinates will have a random "
+"value added (&#xB1;0.25&#xB0;)."
+msgstr ""
+"குறைத்த இட குறிப்பு எனில் உங்கள் மாநகரம், மாநிலம், நாடு தவிர ஒன்றும் "
+"வெளியிடப்படாது. ஜிபிஎஸ் ஆயத்தொலைவுகளுக்கு தற்போக்கு மதிப்பு சேர்க்கப்படும் "
+"(&#xB1;0.25&#xB0;)."
+
+#: ../src/empathy-preferences.ui.h:24
 msgid "Show _avatars"
 msgstr "(_a) அவதாரங்களை காட்டு"
 
-#: ../src/empathy-preferences.ui.h:17
+#: ../src/empathy-preferences.ui.h:25
 msgid "Show _smileys as images"
 msgstr "(_s) சிரிப்பான்களை பிம்பங்களாக காட்டு"
 
-#: ../src/empathy-preferences.ui.h:18
+#: ../src/empathy-preferences.ui.h:26
 msgid "Show co_mpact contact list"
 msgstr "(_m) அடக்கமான தொடர்பு பட்டியல் ஐ காட்டு "
 
-#: ../src/empathy-preferences.ui.h:19
+#: ../src/empathy-preferences.ui.h:27
+msgid "Show contact _list in rooms"
+msgstr "(_l) அறைகளில் தொடர்பு பட்டியல் ஐ காட்டு "
+
+#: ../src/empathy-preferences.ui.h:28
 msgid "Sort by _name"
 msgstr "(_n) பெயர் ஆல் வரிசைப்படுத்து"
 
-#: ../src/empathy-preferences.ui.h:20
+#: ../src/empathy-preferences.ui.h:29
 msgid "Sort by s_tate"
 msgstr "(_t) நிலை வாரியாக வரிசைப்படுத்து"
 
-#: ../src/empathy-preferences.ui.h:21
+#: ../src/empathy-preferences.ui.h:30
 msgid "Sounds"
 msgstr "ஒலிகள்"
 
-#: ../src/empathy-preferences.ui.h:22
+#: ../src/empathy-preferences.ui.h:31
 msgid "Spell Checking"
 msgstr "எழுத்து பிழை திருத்தம்"
 
-#: ../src/empathy-preferences.ui.h:23
+#: ../src/empathy-preferences.ui.h:32
+msgid ""
+"The list of languages reflects only the languages for which you have a "
+"dictionary installed."
+msgstr "இந்த பட்டியல் நீங்கள் எந்த மொழிகளுக்கு அகராதி நிறுவி இருக்கிறீர்களோ அவற்றை மட்டுமே காட்டுகிறது"
+
+#: ../src/empathy-preferences.ui.h:33
 msgid "Themes"
 msgstr "கருத்துகள்"
 
-#: ../src/empathy-preferences.ui.h:24
+#: ../src/empathy-preferences.ui.h:34
 msgid "_Enable bubble notifications"
 msgstr "(_E) பலூனில் அறிவிப்புகளை செயல்படுத்து"
 
-#: ../src/empathy-preferences.ui.h:25
+#: ../src/empathy-preferences.ui.h:35
 msgid "_Enable sound notifications"
 msgstr "(_E) ஒலி அறிவிப்புகளை செயல்படுத்து"
 
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:36
 msgid "_Open new chats in separate windows"
 msgstr "(_O) புதிய அரட்டைகளை தனி சாளரங்களில் திற"
 
+#: ../src/empathy-preferences.ui.h:37
+msgid "_Publish location to my contacts"
+msgstr "(_P) என் தொடர்புகளுக்கு இடத்தை வெளியிடு"
+
+#: ../src/empathy-preferences.ui.h:38
+msgid "_Reduce location accuracy"
+msgstr "(_R) இடத்தின் குறிப்பை குறை"
+
 #: ../src/empathy-status-icon.ui.h:1
 msgid "Status"
 msgstr "நிலை"
@@ -2114,9 +2385,78 @@ msgid ""
 "An invitation was offered for service %s, but you don't have the needed "
 "application to handle it"
 msgstr ""
-" %s சேவைக்கு அழைப்பு கொடுக்கப்பட்டது ஆனால் அதை கையாள உங்கள் கணினியில் தேவையான பயன்பாடு "
+" %s சேவைக்கு அழைப்பு கொடுக்கப்பட்டது. ஆனால் அதை கையாள உங்கள் கணினியில் தேவையான பயன்பாடு "
 "இல்லை"
 
 #: ../src/empathy-call-window-fullscreen.ui.h:1
 msgid "gtk-leave-fullscreen"
 msgstr "ஜிடிகே முழுத்திரையை  விட்டுவிலகு"
+
+#: ../src/empathy-map-view.ui.h:1
+msgid "Contact Map View"
+msgstr "தொடர்புகள் படக்காட்சி"
+
+#: ../src/empathy-debug-dialog.c:111 ../src/empathy-debug-dialog.c:1075
+msgid "Error"
+msgstr " பிழை"
+
+#: ../src/empathy-debug-dialog.c:114 ../src/empathy-debug-dialog.c:1069
+msgid "Critical"
+msgstr "ஆபத்தானன்"
+
+#: ../src/empathy-debug-dialog.c:117 ../src/empathy-debug-dialog.c:1063
+msgid "Warning"
+msgstr "எச்சரிக்கை"
+
+#: ../src/empathy-debug-dialog.c:120 ../src/empathy-debug-dialog.c:1057
+#: ../src/empathy-debug-dialog.c:1105
+msgid "Message"
+msgstr "செய்தி"
+
+#: ../src/empathy-debug-dialog.c:123 ../src/empathy-debug-dialog.c:1051
+msgid "Info"
+msgstr "தகவல்"
+
+#: ../src/empathy-debug-dialog.c:126 ../src/empathy-debug-dialog.c:1045
+msgid "Debug"
+msgstr "வழுநீக்கு"
+
+#: ../src/empathy-debug-dialog.c:837
+msgid "Save"
+msgstr "சேமி"
+
+#: ../src/empathy-debug-dialog.c:940
+msgid "Debug Window"
+msgstr "வழு நீக்கு சாளரம்"
+
+#: ../src/empathy-debug-dialog.c:1013
+msgid "Pause"
+msgstr "தாமதி"
+
+#: ../src/empathy-debug-dialog.c:1025
+msgid "Level "
+msgstr "மட்டம்"
+
+#: ../src/empathy-debug-dialog.c:1094
+msgid "Time"
+msgstr "நேரம்"
+
+#: ../src/empathy-debug-dialog.c:1096
+msgid "Domain"
+msgstr "களம்"
+
+#: ../src/empathy-debug-dialog.c:1098
+msgid "Category"
+msgstr "வகை"
+
+#: ../src/empathy-debug-dialog.c:1100
+msgid "Level"
+msgstr "மட்டம்"
+
+#: ../src/empathy-debug-dialog.c:1132
+msgid ""
+"The selected connection manager does not support the remote debugging "
+"extension."
+msgstr "தேர்ந்தெடுத்த இணைப்பு மேலாளர் தொலை வழு நீக்கத்தை ஆதரிக்கவில்லை"
+
+
index cd13bffb1ef5438cd3314f219a650f39c32a7e83..42485b7d1fed7105ee9f131effd608787523db09 100644 (file)
@@ -83,7 +83,7 @@ EXTRA_DIST =                  \
        $(ui_DATA)
 
 if HAVE_LIBCHAMPLAIN
-empathy_SOURCES +=                             \
+empathy_handwritten_source +=                          \
        empathy-map-view.c                      \
        empathy-map-view.h
 
index 1dcde458fbbb14294f9596c91f6789726917c29d..4e2f4392ad80b587e08d13119b1025c14e34c7bb 100644 (file)
@@ -397,7 +397,7 @@ accounts_dialog_model_add_columns (EmpathyAccountsDialog *dialog)
        g_signal_connect (cell, "toggled",
                          G_CALLBACK (accounts_dialog_enable_toggled_cb),
                          dialog);
-       
+
        /* Account column */
        column = gtk_tree_view_column_new ();
        gtk_tree_view_column_set_title (column, _("Accounts"));
@@ -440,7 +440,7 @@ accounts_dialog_model_select_first (EmpathyAccountsDialog *dialog)
        /* select first */
        view = GTK_TREE_VIEW (dialog->treeview);
        model = gtk_tree_view_get_model (view);
-       
+
        if (gtk_tree_model_get_iter_first (model, &iter)) {
                selection = gtk_tree_view_get_selection (view);
                gtk_tree_selection_select_iter (selection, &iter);
@@ -510,7 +510,7 @@ accounts_dialog_get_account_iter (EmpathyAccountsDialog *dialog,
        GtkTreeSelection *selection;
        GtkTreeModel     *model;
        gboolean          ok;
-       
+
        /* Update the status in the model */
        view = GTK_TREE_VIEW (dialog->treeview);
        selection = gtk_tree_view_get_selection (view);
@@ -730,7 +730,7 @@ accounts_dialog_connection_changed_cb     (EmpathyAccountManager    *manager,
        GtkTreeModel *model;
        GtkTreeIter   iter;
        gboolean      found;
-       
+
        /* Update the status in the model */
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->treeview));
 
@@ -1041,7 +1041,7 @@ accounts_dialog_destroy_cb (GtkWidget            *widget,
 
        g_object_unref (dialog->account_manager);
        g_object_unref (dialog->mc);
-       
+
        g_free (dialog);
 }
 
index 4ad1b260930faba66dcb3f1ad3be3c4a29c7fed1..75c6abfc7b7b2d3f8a895d4c557ba010312d2267 100644 (file)
@@ -488,7 +488,7 @@ empathy_call_window_mic_volume_changed_cb (GtkAdjustment *adj,
     priv->volume = volume;
 
   /* Ensure that the toggle button is active if the volume is > 0 and inactive
-   * if it's smaller then 0 */
+   * if it's smaller than 0 */
   if ((volume > 0) != gtk_toggle_tool_button_get_active (
         GTK_TOGGLE_TOOL_BUTTON (priv->mic_button)))
     gtk_toggle_tool_button_set_active (
@@ -1201,13 +1201,17 @@ empathy_call_window_disconnected (EmpathyCallWindow *self)
       gtk_action_set_sensitive (priv->redial, TRUE);
       gtk_widget_set_sensitive (priv->redial_button, TRUE);
 
-      /* Reseting the send_video and camera_buton to their initial state */
+      /* Reseting the send_video, camera_buton and mic_button to their
+         initial state */
       gtk_widget_set_sensitive (priv->camera_button, FALSE);
+      gtk_widget_set_sensitive (priv->mic_button, FALSE);
       gtk_action_set_sensitive (priv->send_video, FALSE);
       gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (priv->send_video),
           initial_video);
       gtk_toggle_tool_button_set_active (
           GTK_TOGGLE_TOOL_BUTTON (priv->camera_button), initial_video);
+      gtk_toggle_tool_button_set_active (
+          GTK_TOGGLE_TOOL_BUTTON (priv->mic_button), TRUE);
 
       gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (priv->show_preview),
           FALSE);
@@ -1348,6 +1352,8 @@ empathy_call_window_connected (gpointer user_data)
   gtk_action_set_sensitive (priv->redial, FALSE);
   gtk_widget_set_sensitive (priv->redial_button, FALSE);
 
+  gtk_widget_set_sensitive (priv->mic_button, TRUE);
+
   empathy_call_window_update_avatars_visibility (call, self);
 
   g_object_unref (call);
@@ -1850,6 +1856,9 @@ empathy_call_window_mic_toggled_cb (GtkToggleToolButton *toggle,
   EmpathyCallWindowPriv *priv = GET_PRIV (window);
   gboolean active;
 
+  if (priv->audio_input == NULL)
+    return;
+
   active = (gtk_toggle_tool_button_get_active (toggle));
 
   if (active)
index 57d9efced23e3a72d292cdea1e047c68fbfe52a7..9e7c0962d70df550bef1eef495ec0256da44eba3 100644 (file)
@@ -19,7 +19,7 @@
         </child>
         <child>
           <object class="GtkAction" id="menuhangup">
-            <property name="stock_id">gtk-cancel</property>
+            <property name="icon_name">call-stop</property>
             <property name="name">menuhangup</property>
             <property name="label" translatable="yes">Hang up</property>
           </object>
@@ -89,7 +89,7 @@
                 <property name="visible">True</property>
                 <property name="is_important">True</property>
                 <property name="label" translatable="yes">Hang up</property>
-                <property name="stock_id">gtk-cancel</property>
+                <property name="icon_name">call-stop</property>
               </object>
               <packing>
                 <property name="homogeneous">True</property>
index 118c7375e973989543aa08742f24cdea34d8182d..898897b5fee565417b198d4ebee782d2f20377ee 100644 (file)
@@ -77,6 +77,7 @@ typedef struct {
        GtkUIManager *ui_manager;
        GtkAction   *menu_conv_insert_smiley;
        GtkAction   *menu_conv_favorite;
+       GtkAction   *menu_conv_toggle_contacts;
 
        GtkAction   *menu_edit_cut;
        GtkAction   *menu_edit_copy;
@@ -547,6 +548,8 @@ chat_window_conv_activate_cb (GtkAction         *action,
 {
        EmpathyChatWindowPriv *priv = GET_PRIV (window);
        gboolean               is_room;
+       gboolean               active;
+       EmpathyContact        *remote_contact = NULL;
 
        /* Favorite room menu */
        is_room = empathy_chat_is_room (priv->current_chat);
@@ -565,6 +568,22 @@ chat_window_conv_activate_cb (GtkAction         *action,
                        GTK_TOGGLE_ACTION (priv->menu_conv_favorite), found);
        }
        gtk_action_set_visible (priv->menu_conv_favorite, is_room);
+
+       /* Show contacts menu */
+       g_object_get (priv->current_chat,
+                     "remote-contact", &remote_contact,
+                     "show-contacts", &active,
+                     NULL);
+       if (remote_contact == NULL) {
+               gtk_toggle_action_set_active (
+                       GTK_TOGGLE_ACTION (priv->menu_conv_toggle_contacts),
+                                          active);
+       }
+       gtk_action_set_visible (priv->menu_conv_toggle_contacts,
+                               (remote_contact == NULL));
+       if (remote_contact != NULL) {
+               g_object_unref (remote_contact);
+       }
 }
 
 static void
@@ -602,12 +621,24 @@ chat_window_favorite_toggled_cb (GtkToggleAction   *toggle_action,
                g_object_unref (chatroom);
                return;
        }
-       
+
        if (!active && chatroom) {
                empathy_chatroom_manager_remove (priv->chatroom_manager, chatroom);
        }
 }
 
+static void
+chat_window_contacts_toggled_cb (GtkToggleAction   *toggle_action,
+                                EmpathyChatWindow *window)
+{
+       EmpathyChatWindowPriv *priv = GET_PRIV (window);
+       gboolean               active;
+
+       active = gtk_toggle_action_get_active (toggle_action);
+
+       empathy_chat_set_show_contacts (priv->current_chat, active);
+}
+
 static const gchar *
 chat_get_window_id_for_geometry (EmpathyChat *chat)
 {
@@ -1179,7 +1210,7 @@ chat_window_focus_in_event_cb (GtkWidget        *widget,
        priv->chats_new_msg = g_list_remove (priv->chats_new_msg, priv->current_chat);
 
        chat_window_set_urgency_hint (window, FALSE);
-       
+
        /* Update the title, since we now mark all unread messages as read. */
        chat_window_update_chat_tab (priv->current_chat);
 
@@ -1208,7 +1239,7 @@ chat_window_drag_data_received (GtkWidget        *widget,
                id = (const gchar*) selection->data;
 
                DEBUG ("DND contact from roster with id:'%s'", id);
-               
+
                strv = g_strsplit (id, "/", 2);
                account_id = strv[0];
                contact_id = strv[1];
@@ -1236,18 +1267,18 @@ chat_window_drag_data_received (GtkWidget        *widget,
                g_object_unref (account);
                g_strfreev (strv);
 
-               old_window = chat_window_find_chat (chat);              
+               old_window = chat_window_find_chat (chat);
                if (old_window) {
                        if (old_window == window) {
                                gtk_drag_finish (context, TRUE, FALSE, time);
                                return;
                        }
-                       
+
                        empathy_chat_window_move_chat (old_window, window, chat);
                } else {
                        empathy_chat_window_add_chat (window, chat);
                }
-               
+
                /* Added to take care of any outstanding chat events */
                empathy_chat_window_present_chat (chat);
 
@@ -1278,7 +1309,7 @@ chat_window_drag_data_received (GtkWidget        *widget,
                                gtk_drag_finish (context, TRUE, FALSE, time);
                                return;
                        }
-                       
+
                        priv->dnd_same_window = FALSE;
                }
 
@@ -1368,6 +1399,7 @@ empathy_chat_window_init (EmpathyChatWindow *window)
                                       "ui_manager", &priv->ui_manager,
                                       "menu_conv_insert_smiley", &priv->menu_conv_insert_smiley,
                                       "menu_conv_favorite", &priv->menu_conv_favorite,
+                                      "menu_conv_toggle_contacts", &priv->menu_conv_toggle_contacts,
                                       "menu_edit_cut", &priv->menu_edit_cut,
                                       "menu_edit_copy", &priv->menu_edit_copy,
                                       "menu_edit_paste", &priv->menu_edit_paste,
@@ -1384,6 +1416,7 @@ empathy_chat_window_init (EmpathyChatWindow *window)
                              "menu_conv", "activate", chat_window_conv_activate_cb,
                              "menu_conv_clear", "activate", chat_window_clear_activate_cb,
                              "menu_conv_favorite", "toggled", chat_window_favorite_toggled_cb,
+                             "menu_conv_toggle_contacts", "toggled", chat_window_contacts_toggled_cb,
                              "menu_conv_close", "activate", chat_window_close_activate_cb,
                              "menu_edit", "activate", chat_window_edit_activate_cb,
                              "menu_edit_cut", "activate", chat_window_cut_activate_cb,
@@ -1565,14 +1598,14 @@ empathy_chat_window_add_chat (EmpathyChatWindow *window,
        /* If this window has just been created, position it */
        if (priv->chats == NULL) {
                empathy_geometry_load (chat_get_window_id_for_geometry (chat), &x, &y, &w, &h);
-               
+
                if (x >= 0 && y >= 0) {
                        /* Let the window manager position it if we don't have
                         * good x, y coordinates.
                         */
                        gtk_window_move (GTK_WINDOW (priv->dialog), x, y);
                }
-               
+
                if (w > 0 && h > 0) {
                        /* Use the defaults from the ui file if we don't have
                         * good w, h geometry.
index 0d5a831802a6b08ce679d4615887a621977dd4a3..8c8ea7d006ff93cb83e33d0826038875475d1ae5 100644 (file)
             <property name="label" translatable="yes">_Favorite Chatroom</property>
           </object>
         </child>
+        <child>
+          <object class="GtkToggleAction" id="menu_conv_toggle_contacts">
+            <property name="name">menu_conv_toggle_contacts</property>
+            <property name="active">TRUE</property>
+            <property name="label" translatable="yes">_Show Contact List</property>
+          </object>
+        </child>
         <child>
           <object class="GtkAction" id="menu_conv_close">
             <property name="stock_id">gtk-close</property>
           <menuitem action="menu_conv_clear"/>
           <menuitem action="menu_conv_insert_smiley"/>
           <menuitem action="menu_conv_favorite"/>
+          <menuitem action="menu_conv_toggle_contacts"/>
           <separator/>
           <menuitem action="menu_conv_close"/>
         </menu>
index 1ee619e5827021bf69175cc6fa299166dc7ae5c2..35c91c48c761660722b30b6ba1244a8b8a0e68b5 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <telepathy-glib/util.h>
 
+#include <libempathy/empathy-account-manager.h>
 #include <libempathy/empathy-dispatcher.h>
 #include <libempathy/empathy-tp-contact-factory.h>
 #include <libempathy/empathy-contact-manager.h>
@@ -37,6 +38,7 @@
 
 #include <extensions/extensions.h>
 
+#include <libempathy-gtk/empathy-conf.h>
 #include <libempathy-gtk/empathy-images.h>
 #include <libempathy-gtk/empathy-contact-dialogs.h>
 #include <libempathy-gtk/empathy-ui-utils.h>
@@ -50,6 +52,8 @@
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyEventManager)
 
+#define NOTIFICATION_TIMEOUT 2 /* seconds */
+
 typedef struct {
   EmpathyEventManager *manager;
   EmpathyDispatchOperation *operation;
@@ -247,6 +251,13 @@ event_remove (EventPriv *event)
   event_free (event);
 }
 
+static gboolean
+autoremove_event_timeout_cb (EventPriv *event)
+{
+  event_remove (event);
+  return FALSE;
+}
+
 static void
 event_manager_add (EmpathyEventManager *manager, EmpathyContact *contact,
   const gchar *icon_name, const gchar *header, const gchar *message,
@@ -260,6 +271,7 @@ event_manager_add (EmpathyEventManager *manager, EmpathyContact *contact,
   event->public.icon_name = g_strdup (icon_name);
   event->public.header = g_strdup (header);
   event->public.message = g_strdup (message);
+  event->public.must_ack = (func != NULL);
   event->inhibit = FALSE;
   event->func = func;
   event->user_data = user_data;
@@ -269,6 +281,12 @@ event_manager_add (EmpathyEventManager *manager, EmpathyContact *contact,
   DEBUG ("Adding event %p", event);
   priv->events = g_slist_prepend (priv->events, event);
   g_signal_emit (event->manager, signals[EVENT_ADDED], 0, event);
+
+  if (!event->public.must_ack)
+    {
+      g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
+        (GSourceFunc) autoremove_event_timeout_cb, event);
+    }
 }
 
 static void
@@ -956,6 +974,65 @@ event_manager_pendings_changed_cb (EmpathyContactList  *list,
   g_free (header);
 }
 
+static void
+event_manager_presence_changed_cb (EmpathyContactMonitor *monitor,
+    EmpathyContact *contact,
+    TpConnectionPresenceType current,
+    TpConnectionPresenceType previous,
+    EmpathyEventManager *manager)
+{
+  McAccount *account;
+  gboolean just_connected;
+  EmpathyAccountManager *account_manager;
+  gchar *header = NULL;
+  gboolean preference = FALSE;
+
+  account = empathy_contact_get_account (contact);
+  account_manager = empathy_account_manager_dup_singleton ();
+  just_connected = empathy_account_manager_is_account_just_connected (
+                  account_manager, account);
+
+  g_object_unref (account_manager);
+  if (just_connected)
+    return;
+
+  if (tp_connection_presence_type_cmp_availability (previous,
+     TP_CONNECTION_PRESENCE_TYPE_OFFLINE) > 0)
+    {
+      /* contact was online */
+      empathy_conf_get_bool (empathy_conf_get (),
+                      EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNOUT, &preference);
+      if (preference && tp_connection_presence_type_cmp_availability (current,
+          TP_CONNECTION_PRESENCE_TYPE_OFFLINE) <= 0)
+        {
+          /* someone is logging off */
+          header = g_strdup_printf (_("%s is now offline."),
+            empathy_contact_get_name (contact));
+
+          event_manager_add (manager, contact, GTK_STOCK_DIALOG_INFO, header,
+                             NULL, NULL, NULL, NULL);
+        }
+    }
+  else
+    {
+      /* contact was offline */
+      empathy_conf_get_bool (empathy_conf_get (),
+                      EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNIN, &preference);
+      if (preference && tp_connection_presence_type_cmp_availability (current,
+          TP_CONNECTION_PRESENCE_TYPE_OFFLINE) > 0)
+        {
+          /* someone is logging in */
+          header = g_strdup_printf (_("%s is now online."),
+            empathy_contact_get_name (contact));
+
+          event_manager_add (manager, contact, GTK_STOCK_DIALOG_INFO, header,
+                             NULL, NULL, NULL, NULL);
+        }
+    }
+  g_free (header);
+}
+
+
 static GObject *
 event_manager_constructor (GType type,
                           guint n_props,
@@ -1034,6 +1111,12 @@ empathy_event_manager_init (EmpathyEventManager *manager)
 {
   EmpathyEventManagerPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (manager,
     EMPATHY_TYPE_EVENT_MANAGER, EmpathyEventManagerPriv);
+  EmpathyContactMonitor *monitor;
+  EmpathyContactList *list_iface;
+
+  list_iface = EMPATHY_CONTACT_LIST (empathy_contact_manager_dup_singleton ());
+  monitor = empathy_contact_list_get_monitor (list_iface);
+  g_object_unref (list_iface);
 
   manager->priv = priv;
 
@@ -1043,6 +1126,8 @@ empathy_event_manager_init (EmpathyEventManager *manager)
     G_CALLBACK (event_manager_approve_channel_cb), manager);
   g_signal_connect (priv->contact_manager, "pendings-changed",
     G_CALLBACK (event_manager_pendings_changed_cb), manager);
+  g_signal_connect (monitor, "contact-presence-changed",
+    G_CALLBACK (event_manager_presence_changed_cb), manager);
 }
 
 EmpathyEventManager *
index 42fd0c090500e36b7dfc0727b77e841c6456a197..af73c8ea7ff383d770a489c4f03e0d4c5737397d 100644 (file)
@@ -53,6 +53,7 @@ typedef struct {
        gchar          *icon_name;
        gchar          *header;
        gchar          *message;
+       gboolean        must_ack;
 } EmpathyEvent;
 
 GType                empathy_event_manager_get_type      (void) G_GNUC_CONST;
index 5830d2b71b00c78c64fc5cf0a0b2a9d92f88ba20..e92817a0be4910b3845e5b5a754a6e5a18d84b14 100644 (file)
@@ -197,7 +197,7 @@ main_window_flash_cb (EmpathyMainWindow *window)
        events = empathy_event_manager_get_events (window->event_manager);
        for (l = events; l; l = l->next) {
                data.event = l->data;
-               if (!data.event->contact) {
+               if (!data.event->contact || !data.event->must_ack) {
                        continue;
                }
 
index 99c496b233447e397571b1d564cd5c38c0a8b840..86e15bdfff0ec9ac41b5d73a4e835c15fd4977f9 100644 (file)
@@ -161,7 +161,7 @@ map_view_contacts_foreach (GtkTreeModel *model,
     GtkTreeIter *iter,
     gpointer user_data)
 {
-  EmpathyMapView *window = (EmpathyMapView*) user_data;
+  EmpathyMapView *window = (EmpathyMapView *) user_data;
   EmpathyContact *contact;
   ClutterActor *marker;
   ClutterActor *texture;
index 5636659323e60440a70a1af04103c56653b81839..da90cbb493999752ac62301905c3f4e577a2b0f8 100644 (file)
@@ -362,7 +362,7 @@ new_chatroom_dialog_update_widgets (EmpathyNewChatroomDialog *dialog)
        McProfile             *profile;
        const gchar           *protocol;
        const gchar           *room;
-       
+
        account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser);
        account = empathy_account_chooser_dup_account (account_chooser);
        profile = mc_account_get_profile (account);
@@ -545,7 +545,7 @@ new_chatroom_dialog_listing_cb (EmpathyTpRoomlist        *room_list,
 
        /* Update the throbber */
        if (listing) {
-               ephy_spinner_start (EPHY_SPINNER (dialog->throbber));           
+               ephy_spinner_start (EPHY_SPINNER (dialog->throbber));
        } else {
                ephy_spinner_stop (EPHY_SPINNER (dialog->throbber));
        }
@@ -572,7 +572,7 @@ new_chatroom_dialog_model_row_activated_cb (GtkTreeView             *tree_view,
 static void
 new_chatroom_dialog_model_selection_changed (GtkTreeSelection         *selection,
                                             EmpathyNewChatroomDialog *dialog)
-{      
+{
        GtkTreeModel *model;
        GtkTreeIter   iter;
        gchar        *room = NULL;
index 4c88db675b528a258cfa0a11567bf023e2942252..0e2299cac6d0424c18814af3da9b66f213ebd413 100644 (file)
@@ -52,6 +52,7 @@ typedef struct {
        GtkWidget *checkbutton_show_avatars;
        GtkWidget *checkbutton_compact_contact_list;
        GtkWidget *checkbutton_show_smileys;
+       GtkWidget *checkbutton_show_contacts_in_rooms;
        GtkWidget *combobox_chat_theme;
        GtkWidget *hbox_adium_theme;
        GtkWidget *filechooserbutton_adium_theme;
@@ -68,6 +69,8 @@ typedef struct {
        GtkWidget *checkbutton_notifications_enabled;
        GtkWidget *checkbutton_notifications_disabled_away;
        GtkWidget *checkbutton_notifications_focus;
+       GtkWidget *checkbutton_notifications_contact_signin;
+       GtkWidget *checkbutton_notifications_contact_signout;
 
        GtkWidget *treeview_spell_checker;
 
@@ -199,6 +202,12 @@ preferences_setup_widgets (EmpathyPreferences *preferences)
        preferences_hookup_toggle_button (preferences,
                                          EMPATHY_PREFS_NOTIFICATIONS_FOCUS,
                                          preferences->checkbutton_notifications_focus);
+       preferences_hookup_toggle_button (preferences,
+                                         EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNIN,
+                                         preferences->checkbutton_notifications_contact_signin);
+       preferences_hookup_toggle_button (preferences,
+                                         EMPATHY_PREFS_NOTIFICATIONS_CONTACT_SIGNOUT,
+                                         preferences->checkbutton_notifications_contact_signout);
 
        preferences_hookup_sensitivity (preferences,
                                        EMPATHY_PREFS_NOTIFICATIONS_ENABLED,
@@ -206,6 +215,12 @@ preferences_setup_widgets (EmpathyPreferences *preferences)
        preferences_hookup_sensitivity (preferences,
                                        EMPATHY_PREFS_NOTIFICATIONS_ENABLED,
                                        preferences->checkbutton_notifications_focus);
+       preferences_hookup_sensitivity (preferences,
+                                       EMPATHY_PREFS_NOTIFICATIONS_ENABLED,
+                                       preferences->checkbutton_notifications_contact_signin);
+       preferences_hookup_sensitivity (preferences,
+                                       EMPATHY_PREFS_NOTIFICATIONS_ENABLED,
+                                       preferences->checkbutton_notifications_contact_signout);
 
        preferences_hookup_toggle_button (preferences,
                                          EMPATHY_PREFS_SOUNDS_ENABLED,
@@ -237,6 +252,10 @@ preferences_setup_widgets (EmpathyPreferences *preferences)
                                          EMPATHY_PREFS_CHAT_SHOW_SMILEYS,
                                          preferences->checkbutton_show_smileys);
 
+       preferences_hookup_toggle_button (preferences,
+                                         EMPATHY_PREFS_CHAT_SHOW_CONTACTS_IN_ROOMS,
+                                         preferences->checkbutton_show_contacts_in_rooms);
+
        preferences_hookup_radio_button (preferences,
                                         EMPATHY_PREFS_CONTACTS_SORT_CRITERIUM,
                                         preferences->radiobutton_contact_list_sort_by_name);
@@ -457,7 +476,7 @@ preferences_languages_add (EmpathyPreferences *preferences)
                               codes != NULL);
        if (!codes) {
                gtk_widget_set_sensitive (preferences->treeview_spell_checker, FALSE);
-       }               
+       }
 
        for (l = codes; l; l = l->next) {
                GtkTreeIter  iter;
@@ -655,12 +674,12 @@ preferences_widget_sync_string (const gchar *key, GtkWidget *widget)
                                GEnumValue  *enum_value;
                                GSList      *list;
                                GtkWidget   *toggle_widget;
-                               
+
                                /* Get index from new string */
                                type = empathy_contact_list_store_sort_get_type ();
                                enum_class = G_ENUM_CLASS (g_type_class_peek (type));
                                enum_value = g_enum_get_value_by_nick (enum_class, value);
-                               
+
                                if (enum_value) {
                                        list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
                                        toggle_widget = g_slist_nth_data (list, enum_value->value);
@@ -722,7 +741,7 @@ preferences_notify_int_cb (EmpathyConf  *conf,
                           const gchar *key,
                           gpointer     user_data)
 {
-       preferences_widget_sync_int (key, user_data);   
+       preferences_widget_sync_int (key, user_data);
 }
 
 static void
@@ -912,14 +931,14 @@ preferences_radio_button_toggled_cb (GtkWidget *button,
                GType        type;
                GEnumClass  *enum_class;
                GEnumValue  *enum_value;
-               
+
                group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button));
-               
+
                /* Get string from index */
                type = empathy_contact_list_store_sort_get_type ();
                enum_class = G_ENUM_CLASS (g_type_class_peek (type));
                enum_value = g_enum_get_value (enum_class, g_slist_index (group, button));
-               
+
                if (!enum_value) {
                        g_warning ("No GEnumValue for EmpathyContactListSort with GtkRadioButton index:%d",
                                   g_slist_index (group, button));
@@ -952,7 +971,7 @@ preferences_theme_adium_update_validity (EmpathyPreferences *preferences,
                                         const gchar        *path)
 {
 #ifdef HAVE_WEBKIT
-       if (empathy_theme_adium_is_valid (path)) {
+       if (empathy_adium_path_is_valid (path)) {
                gtk_widget_hide (preferences->label_invalid_adium_theme);
        } else {
                gtk_widget_show (preferences->label_invalid_adium_theme);
@@ -1190,6 +1209,7 @@ empathy_preferences_show (GtkWindow *parent)
                "checkbutton_show_avatars", &preferences->checkbutton_show_avatars,
                "checkbutton_compact_contact_list", &preferences->checkbutton_compact_contact_list,
                "checkbutton_show_smileys", &preferences->checkbutton_show_smileys,
+               "checkbutton_show_contacts_in_rooms", &preferences->checkbutton_show_contacts_in_rooms,
                "combobox_chat_theme", &preferences->combobox_chat_theme,
                "hbox_adium_theme", &preferences->hbox_adium_theme,
                "filechooserbutton_adium_theme", &preferences->filechooserbutton_adium_theme,
@@ -1201,6 +1221,8 @@ empathy_preferences_show (GtkWindow *parent)
                "checkbutton_notifications_enabled", &preferences->checkbutton_notifications_enabled,
                "checkbutton_notifications_disabled_away", &preferences->checkbutton_notifications_disabled_away,
                "checkbutton_notifications_focus", &preferences->checkbutton_notifications_focus,
+               "checkbutton_notifications_contact_signin", &preferences->checkbutton_notifications_contact_signin,
+               "checkbutton_notifications_contact_signout", &preferences->checkbutton_notifications_contact_signout,
                "checkbutton_sounds_enabled", &preferences->checkbutton_sounds_enabled,
                "checkbutton_sounds_disabled_away", &preferences->checkbutton_sounds_disabled_away,
                "treeview_sounds", &preferences->treeview_sounds,
index 6ae92d17c142fd911f03792b4265a7691ac72004..2b9f8557956459b043ec8a5a2310f9eddb5473a1 100644 (file)
@@ -37,7 +37,6 @@
                         <child>
                           <object class="GtkVBox" id="vbox199">
                             <property name="visible">True</property>
-                            <property name="spacing">6</property>
                             <child>
                               <object class="GtkCheckButton" id="checkbutton_compact_contact_list">
                                 <property name="label" translatable="yes">Show co_mpact contact list</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
+                            <child>
+                              <object class="GtkCheckButton" id="checkbutton_show_contacts_in_rooms">
+                                <property name="label" translatable="yes">Show contact _list in rooms</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">3</property>
+                              </packing>
+                            </child>
                           </object>
                         </child>
                       </object>
                             <property name="position">1</property>
                           </packing>
                         </child>
+                        <child>
+                          <object class="GtkCheckButton" id="checkbutton_notifications_contact_signin">
+                            <property name="label" translatable="yes">Enable notifications when a contact comes online</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="checkbutton_notifications_contact_signout">
+                            <property name="label" translatable="yes">Enable notifications when a contact goes offline</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="position">3</property>
+                          </packing>
+                        </child>
                       </object>
                     </child>
                   </object>
index caca6b5e3980d42247449063f835487f4241b7df..7b70229e2003f533d0747100733553a51ec874a4 100644 (file)
@@ -165,7 +165,7 @@ empathy_sidebar_set_property (GObject *object,
   switch (prop_id)
     {
       case PROP_CURRENT_PAGE:
-        empathy_sidebar_set_page (sidebar, g_value_get_object (value));        
+        empathy_sidebar_set_page (sidebar, g_value_get_object (value));
         break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
index 9c21948808732794dd87e5b9dc4068d19032d1bc..d6520ff7cf1aa5eecd29c8151ac2fd0051be3fda 100644 (file)
@@ -229,13 +229,14 @@ status_icon_event_added_cb (EmpathyEventManager *manager,
        DEBUG ("New event %p", event);
 
        priv->event = event;
-       priv->showing_event_icon = TRUE;
-
-       status_icon_update_icon (icon);
-       status_icon_update_tooltip (icon);
+       if (event->must_ack) {
+               priv->showing_event_icon = TRUE;
+               status_icon_update_icon (icon);
+               status_icon_update_tooltip (icon);
+       }
        status_icon_update_notification (icon);
 
-       if (!priv->blink_timeout) {
+       if (!priv->blink_timeout && priv->showing_event_icon) {
                priv->blink_timeout = g_timeout_add (BLINK_TIMEOUT,
                                                     (GSourceFunc) status_icon_blink_timeout_cb,
                                                     icon);
@@ -260,7 +261,7 @@ status_icon_event_removed_cb (EmpathyEventManager *manager,
 
        /* update notification anyway, as it's safe and we might have been
         * changed presence in the meanwhile
-        */     
+        */
        status_icon_update_notification (icon);
 
        if (!priv->event && priv->blink_timeout) {
@@ -378,7 +379,7 @@ status_icon_key_press_event_cb  (GtkWidget *window,
        }
        return FALSE;
 }
-                               
+
 static void
 status_icon_activate_cb (GtkStatusIcon     *status_icon,
                         EmpathyStatusIcon *icon)
index fc6b5118c6ca064df0c126621a7cb2440bfe334f..85124d1e9156056ed813130780a670dd6bd61552 100644 (file)
@@ -286,13 +286,13 @@ create_salut_account (void)
 
        account = mc_account_create (profile);
        mc_account_set_display_name (account, _("People nearby"));
-       
+
        nickname = e_contact_get (contact, E_CONTACT_NICKNAME);
        first_name = e_contact_get (contact, E_CONTACT_GIVEN_NAME);
        last_name = e_contact_get (contact, E_CONTACT_FAMILY_NAME);
        email = e_contact_get (contact, E_CONTACT_EMAIL_1);
        jid = e_contact_get (contact, E_CONTACT_IM_JABBER_HOME_1);
-       
+
        if (!tp_strdiff (nickname, "nickname")) {
                g_free (nickname);
                nickname = NULL;
@@ -634,7 +634,7 @@ main (int argc, char *argv[])
                        (idle), TP_CONNECTION_PRESENCE_TYPE_OFFLINE) <= 0) {
                empathy_idle_set_state (idle, MC_PRESENCE_AVAILABLE);
        }
-       
+
        create_salut_account ();
 
        /* Setting up UI */
index 84356f20b9e3e8e3974681709d7d96edefc048bf..489322f9ca0c97931ed3aa353ffdd17ed02d9a14 100644 (file)
@@ -8,6 +8,12 @@ then
   fail=1
 fi
 
+if grep -n '   $' "$@"
+then
+  echo "^^^ The above files contain unwanted trailing tabs"
+  fail=1
+fi
+
 # TODO: enable tab checking once all Empathy switched to TP coding style
 #if grep -n '  ' "$@"
 #then