]> git.0d.be Git - empathy.git/commitdiff
Merge branch 'part-reasons'
authorWill Thompson <will.thompson@collabora.co.uk>
Wed, 1 Jul 2009 22:43:27 +0000 (23:43 +0100)
committerWill Thompson <will.thompson@collabora.co.uk>
Wed, 1 Jul 2009 22:43:27 +0000 (23:43 +0100)
114 files changed:
configure.ac
data/empathy.schemas.in
docs/libempathy-gtk/libempathy-gtk-docs.sgml
docs/libempathy-gtk/libempathy-gtk.types
libempathy-gtk/Makefile.am
libempathy-gtk/empathy-account-chooser.c
libempathy-gtk/empathy-account-chooser.h
libempathy-gtk/empathy-account-widget-irc.c
libempathy-gtk/empathy-account-widget-irc.h
libempathy-gtk/empathy-account-widget-sip.c
libempathy-gtk/empathy-account-widget-sip.h
libempathy-gtk/empathy-account-widget.c
libempathy-gtk/empathy-account-widget.h
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-contact-widget.c
libempathy-gtk/empathy-irc-network-dialog.c
libempathy-gtk/empathy-log-window.c
libempathy-gtk/empathy-log-window.h
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-smiley-manager.c
libempathy-gtk/empathy-sound.c [new file with mode: 0644]
libempathy-gtk/empathy-sound.h [new file with mode: 0644]
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-gtk/empathy-ui-utils.h
libempathy/Makefile.am
libempathy/empathy-account-manager.c
libempathy/empathy-account-manager.h
libempathy/empathy-account-priv.h [new file with mode: 0644]
libempathy/empathy-account.c [new file with mode: 0644]
libempathy/empathy-account.h [new file with mode: 0644]
libempathy/empathy-call-handler.c
libempathy/empathy-chatroom-manager.c
libempathy/empathy-chatroom-manager.h
libempathy/empathy-chatroom.c
libempathy/empathy-chatroom.h
libempathy/empathy-contact-manager.c
libempathy/empathy-contact.c
libempathy/empathy-contact.h
libempathy/empathy-debug.c
libempathy/empathy-debug.h
libempathy/empathy-debugger.c [new file with mode: 0644]
libempathy/empathy-debugger.h [new file with mode: 0644]
libempathy/empathy-dispatch-operation.c
libempathy/empathy-dispatch-operation.h
libempathy/empathy-idle.c
libempathy/empathy-log-manager.c
libempathy/empathy-log-manager.h
libempathy/empathy-log-store-empathy.c
libempathy/empathy-log-store.c
libempathy/empathy-log-store.h
libempathy/empathy-time.c
libempathy/empathy-tp-chat.c
libempathy/empathy-tp-contact-factory.c
libempathy/empathy-tp-contact-list.c
libempathy/empathy-tp-roomlist.c
libempathy/empathy-tp-roomlist.h
libempathy/empathy-utils.c
libempathy/empathy-utils.h
megaphone/src/megaphone-applet.c
po/LINGUAS
po/POTFILES.in
po/bn_IN.po
po/es.po
po/lt.po
po/or.po [new file with mode: 0644]
po/ta.po
python/pyempathy/pyempathy.defs
python/pyempathygtk/pyempathygtk.defs
src/Makefile.am
src/empathy-accounts-dialog.c
src/empathy-accounts-dialog.h
src/empathy-accounts-dialog.ui
src/empathy-call-window.c
src/empathy-chat-window.c
src/empathy-chat-window.h
src/empathy-chat-window.ui
src/empathy-chatrooms-window.c
src/empathy-debug-dialog.c
src/empathy-event-manager.c
src/empathy-event-manager.h
src/empathy-import-dialog.c
src/empathy-import-dialog.h
src/empathy-import-pidgin.c
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
tests/check-empathy-chatroom-manager.c
tests/check-empathy-chatroom.c
tests/check-empathy-helpers.c
tests/check-empathy-helpers.h
tests/check-helpers.h
tools/check-whitespace.sh

index ce87cb873b01900f677abe3102b35dffd647d3b4..0dab5e4fc97441c23172d3c4548fe5029340b204 100644 (file)
@@ -40,6 +40,7 @@ LIBCHAMPLAIN_GTK_REQUIRED=0.3.3
 CLUTTER_GTK_REQUIRED=0.8.2
 GEOCLUE_REQUIRED=0.11
 WEBKIT_REQUIRED=1.1.7
+NETWORK_MANAGER_REQUIRED=0.7.0
 
 # Use --enable-maintainer-mode to disabled deprecated symbols
 GNOME_MAINTAINER_MODE_DEFINES
@@ -96,6 +97,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 +112,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 +122,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)
@@ -156,6 +156,32 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name])
 
 AM_GLIB_GNU_GETTEXT
 
+# -----------------------------------------------------------
+# NM integration
+# -----------------------------------------------------------
+AC_ARG_ENABLE(network-manager,
+              AS_HELP_STRING([--enable-network-manager=@<:@no/yes/auto@:>@],
+                             [build with network-manager support]), ,
+                             enable_webkit=auto)
+
+if test "x$enable_network_manager" != "xno"; then
+   PKG_CHECK_MODULES(NETWORK_MANAGER,
+   [
+      libnm_glib >= $NETWORK_MANAGER_REQUIRED
+   ], have_nm="yes", have_nm="no")
+
+   if test "x$have_nm" = "xyes"; then
+      AC_DEFINE(HAVE_NM, 1, [Define if you have libnm-glib])
+   fi
+else
+   have_nm=no
+fi
+
+if test "x$enable_network_manager" = "xyes" -a "x$have_nm" != "xyes"; then
+   AC_MSG_ERROR([Couldn't find libnm-glib dependencies.])
+fi
+AM_CONDITIONAL(HAVE_NM, test "x$have_NM" = "xyes")
+
 # -----------------------------------------------------------
 # Webkit
 # -----------------------------------------------------------
@@ -180,7 +206,6 @@ fi
 if test "x$enable_webkit" = "xyes" -a "x$have_webkit" != "xyes"; then
    AC_MSG_ERROR([Couldn't find webkit dependencies.])
 fi
-
 AM_CONDITIONAL(HAVE_WEBKIT, test "x$have_webkit" = "xyes")
 
 # -----------------------------------------------------------
@@ -454,6 +479,7 @@ Configure summary:
        Display maps (libchamplain).:  ${have_libchamplain}
        Location awareness (Geoclue):  ${have_geoclue}
        Adium themes (Webkit).......:  ${have_webkit}
+       NetworkManager integration..:  ${have_nm}
 
     Extras:
        Documentation...............:  ${enable_gtk_doc}
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 71f8ed3b6cafd6d7302a2eca5c0c57b44f247ec6..edb31afb94d8b2bc1c5b8007a1cc92accda48fb1 100644 (file)
@@ -48,6 +48,7 @@
       <xi:include href="xml/empathy-profile-chooser.xml"/>
       <xi:include href="xml/empathy-smiley-manager.xml"/>
       <xi:include href="xml/empathy-spell.xml"/>
+      <xi:include href="xml/empathy-sound.xml"/>
       <xi:include href="xml/empathy-status-preset-dialog.xml"/>
       <xi:include href="xml/empathy-theme-adium.xml"/>
       <xi:include href="xml/empathy-theme-boxes.xml"/>
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..10931012a5bac1e338b788b4551f83e038919f33 100644 (file)
@@ -54,6 +54,7 @@ libempathy_gtk_handwritten_source =                   \
        empathy-presence-chooser.c              \
        empathy-profile-chooser.c               \
        empathy-smiley-manager.c                \
+       empathy-sound.c                         \
        empathy-spell.c                         \
        empathy-status-preset-dialog.c          \
        empathy-theme-boxes.c                   \
@@ -113,6 +114,7 @@ libempathy_gtk_headers =                    \
        empathy-presence-chooser.h              \
        empathy-profile-chooser.h               \
        empathy-smiley-manager.h                \
+       empathy-sound.h                         \
        empathy-spell.h                         \
        empathy-status-preset-dialog.h          \
        empathy-theme-boxes.h                   \
@@ -226,11 +228,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..7dccb21792638f63c7466d752f67c133dc8bbbcf 100644 (file)
@@ -65,7 +65,7 @@ typedef struct {
 
 typedef struct {
        EmpathyAccountChooser *chooser;
-       McAccount             *account;
+       EmpathyAccount        *account;
        gboolean               set;
 } SetAccountData;
 
@@ -88,19 +88,19 @@ static void     account_chooser_set_property           (GObject
                                                        GParamSpec               *pspec);
 static void     account_chooser_setup                  (EmpathyAccountChooser    *chooser);
 static void     account_chooser_account_created_cb     (EmpathyAccountManager    *manager,
-                                                       McAccount                *account,
+                                                       EmpathyAccount           *account,
                                                        EmpathyAccountChooser    *chooser);
-static void     account_chooser_account_add_foreach    (McAccount                *account,
+static void     account_chooser_account_add_foreach    (EmpathyAccount                *account,
                                                        EmpathyAccountChooser    *chooser);
 static void     account_chooser_account_deleted_cb     (EmpathyAccountManager    *manager,
-                                                       McAccount                *account,
+                                                       EmpathyAccount           *account,
                                                        EmpathyAccountChooser    *chooser);
-static void     account_chooser_account_remove_foreach (McAccount                *account,
+static void     account_chooser_account_remove_foreach (EmpathyAccount                *account,
                                                        EmpathyAccountChooser    *chooser);
 static void     account_chooser_update_iter            (EmpathyAccountChooser    *chooser,
                                                        GtkTreeIter              *iter);
 static void     account_chooser_connection_changed_cb  (EmpathyAccountManager    *manager,
-                                                       McAccount                *account,
+                                                       EmpathyAccount                *account,
                                                        TpConnectionStatusReason  reason,
                                                        TpConnectionStatus        new_status,
                                                        TpConnectionStatus        old_status,
@@ -253,16 +253,16 @@ empathy_account_chooser_new (void)
  * @chooser: an #EmpathyAccountChooser
  *
  * Returns the account which is currently selected in the chooser or %NULL
- * if there is no account selected. The #McAccount returned should be
+ * if there is no account selected. The #EmpathyAccount returned should be
  * unrefed with g_object_unref() when finished with.
  *
- * Return value: a new ref to the #McAccount currently selected, or %NULL.
+ * Return value: a new ref to the #EmpathyAccount currently selected, or %NULL.
  */
-McAccount *
+EmpathyAccount *
 empathy_account_chooser_dup_account (EmpathyAccountChooser *chooser)
 {
        EmpathyAccountChooserPriv *priv;
-       McAccount                *account;
+       EmpathyAccount           *account;
        GtkTreeModel             *model;
        GtkTreeIter               iter;
 
@@ -295,7 +295,7 @@ TpConnection *
 empathy_account_chooser_get_connection (EmpathyAccountChooser *chooser)
 {
        EmpathyAccountChooserPriv *priv;
-       McAccount                 *account;
+       EmpathyAccount            *account;
        TpConnection              *connection;
 
        g_return_val_if_fail (EMPATHY_IS_ACCOUNT_CHOOSER (chooser), NULL);
@@ -303,7 +303,7 @@ empathy_account_chooser_get_connection (EmpathyAccountChooser *chooser)
        priv = GET_PRIV (chooser);
 
        account = empathy_account_chooser_dup_account (chooser);
-       connection = empathy_account_manager_get_connection (priv->manager, account);
+       connection = empathy_account_get_connection (account);
        g_object_unref (account);
 
        return connection;
@@ -312,7 +312,7 @@ empathy_account_chooser_get_connection (EmpathyAccountChooser *chooser)
 /**
  * empathy_account_chooser_set_account:
  * @chooser: an #EmpathyAccountChooser
- * @account: an #McAccount
+ * @account: an #EmpathyAccount
  *
  * Sets the currently selected account to @account, if it exists in the list.
  *
@@ -320,7 +320,7 @@ empathy_account_chooser_get_connection (EmpathyAccountChooser *chooser)
  */
 gboolean
 empathy_account_chooser_set_account (EmpathyAccountChooser *chooser,
-                                    McAccount             *account)
+                                    EmpathyAccount *account)
 {
        GtkComboBox    *combobox;
        GtkTreeModel   *model;
@@ -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;
 }
 
@@ -457,7 +457,7 @@ account_chooser_setup (EmpathyAccountChooser *chooser)
                                    G_TYPE_STRING,    /* Image */
                                    G_TYPE_STRING,    /* Name */
                                    G_TYPE_BOOLEAN,   /* Enabled */
-                                   MC_TYPE_ACCOUNT);
+                                   EMPATHY_TYPE_ACCOUNT);
 
        gtk_combo_box_set_model (combobox, GTK_TREE_MODEL (store));
 
@@ -477,25 +477,25 @@ account_chooser_setup (EmpathyAccountChooser *chooser)
                                        NULL);
 
        /* Populate accounts */
-       accounts = mc_accounts_list ();
+       accounts = empathy_account_manager_dup_accounts (priv->manager);
        g_list_foreach (accounts,
                        (GFunc) account_chooser_account_add_foreach,
                        chooser);
 
-       mc_accounts_list_free (accounts);
+       g_list_free (accounts);
        g_object_unref (store);
 }
 
 static void
 account_chooser_account_created_cb (EmpathyAccountManager *manager,
-                                   McAccount             *account,
+                                   EmpathyAccount        *account,
                                    EmpathyAccountChooser *chooser)
 {
        account_chooser_account_add_foreach (account, chooser);
 }
 
 static void
-account_chooser_account_add_foreach (McAccount             *account,
+account_chooser_account_add_foreach (EmpathyAccount        *account,
                                     EmpathyAccountChooser *chooser)
 {
        GtkListStore *store;
@@ -511,18 +511,20 @@ account_chooser_account_add_foreach (McAccount             *account,
                                           COL_ACCOUNT_POINTER, account,
                                           -1);
        account_chooser_update_iter (chooser, &iter);
+       /* We got a reffed account and it was reffed by the liststore as well */
+       g_object_unref (account);
 }
 
 static void
 account_chooser_account_deleted_cb (EmpathyAccountManager *manager,
-                                   McAccount             *account,
+                                   EmpathyAccount        *account,
                                    EmpathyAccountChooser *chooser)
 {
        account_chooser_account_remove_foreach (account, chooser);
 }
 
 typedef struct {
-       McAccount   *account;
+       EmpathyAccount   *account;
        GtkTreeIter *iter;
        gboolean     found;
 } FindAccountData;
@@ -534,7 +536,7 @@ account_chooser_find_account_foreach (GtkTreeModel *model,
                                      gpointer      user_data)
 {
        FindAccountData *data = user_data;
-       McAccount       *account;
+       EmpathyAccount  *account;
 
        gtk_tree_model_get (model, iter, COL_ACCOUNT_POINTER, &account, -1);
 
@@ -553,7 +555,7 @@ account_chooser_find_account_foreach (GtkTreeModel *model,
 
 static gboolean
 account_chooser_find_account (EmpathyAccountChooser *chooser,
-                             McAccount             *account,
+                             EmpathyAccount        *account,
                              GtkTreeIter           *iter)
 {
        GtkListStore    *store;
@@ -573,7 +575,7 @@ account_chooser_find_account (EmpathyAccountChooser *chooser,
 }
 
 static void
-account_chooser_account_remove_foreach (McAccount            *account,
+account_chooser_account_remove_foreach (EmpathyAccount        *account,
                                        EmpathyAccountChooser *chooser)
 {
        GtkListStore *store;
@@ -595,7 +597,7 @@ account_chooser_update_iter (EmpathyAccountChooser *chooser,
        EmpathyAccountChooserPriv *priv;
        GtkListStore              *store;
        GtkComboBox               *combobox;
-       McAccount                 *account;
+       EmpathyAccount            *account;
        const gchar               *icon_name;
        gboolean                   is_enabled = TRUE;
 
@@ -615,7 +617,7 @@ account_chooser_update_iter (EmpathyAccountChooser *chooser,
 
        gtk_list_store_set (store, iter,
                            COL_ACCOUNT_IMAGE, icon_name,
-                           COL_ACCOUNT_TEXT, mc_account_get_display_name (account),
+                           COL_ACCOUNT_TEXT, empathy_account_get_display_name (account),
                            COL_ACCOUNT_ENABLED, is_enabled,
                            -1);
 
@@ -630,7 +632,7 @@ account_chooser_update_iter (EmpathyAccountChooser *chooser,
 
 static void
 account_chooser_connection_changed_cb (EmpathyAccountManager   *manager,
-                                      McAccount               *account,
+                                      EmpathyAccount          *account,
                                       TpConnectionStatusReason reason,
                                       TpConnectionStatus       new_status,
                                       TpConnectionStatus       old_status,
@@ -653,11 +655,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);
@@ -671,7 +673,7 @@ account_chooser_set_account_foreach (GtkTreeModel   *model,
                                     GtkTreeIter    *iter,
                                     SetAccountData *data)
 {
-       McAccount *account;
+       EmpathyAccount *account;
        gboolean   equal;
 
        gtk_tree_model_get (model, iter, COL_ACCOUNT_POINTER, &account, -1);
@@ -744,7 +746,7 @@ empathy_account_chooser_set_filter (EmpathyAccountChooser           *chooser,
 
 /**
  * EmpathyAccountChooserFilterFunc:
- * @account: an #McAccount
+ * @account: an #EmpathyAccount
  * @user_data: user data, or %NULL
  *
  * A function which decides whether the account indicated by @account
@@ -755,7 +757,7 @@ empathy_account_chooser_set_filter (EmpathyAccountChooser           *chooser,
 
 /**
  * empathy_account_chooser_filter_is_connected:
- * @account: an #McAccount
+ * @account: an #EmpathyAccount
  * @user_data: user data or %NULL
  *
  * A useful #EmpathyAccountChooserFilterFunc that one could pass into
@@ -764,17 +766,12 @@ empathy_account_chooser_set_filter (EmpathyAccountChooser           *chooser,
  * Return value: Whether @account is connected
  */
 gboolean
-empathy_account_chooser_filter_is_connected (McAccount *account,
+empathy_account_chooser_filter_is_connected (EmpathyAccount *account,
                                             gpointer   user_data)
 {
-       MissionControl     *mc;
        TpConnectionStatus  status;
 
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), FALSE);
-
-       mc = empathy_mission_control_dup_singleton ();
-       status = mission_control_get_connection_status (mc, account, NULL);
-       g_object_unref (mc);
+       g_object_get (account, "status", &status, NULL);
 
        return status == TP_CONNECTION_STATUS_CONNECTED;
 }
index c2105406abcd5bddd7648ed78e85410ab10efc48..255b6841fe6517a3d708381ef09b70fabfd0533f 100644 (file)
@@ -27,7 +27,7 @@
 
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
@@ -38,7 +38,7 @@ G_BEGIN_DECLS
 #define EMPATHY_IS_ACCOUNT_CHOOSER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_ACCOUNT_CHOOSER))
 #define EMPATHY_ACCOUNT_CHOOSER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_ACCOUNT_CHOOSER, EmpathyAccountChooserClass))
 
-typedef gboolean (* EmpathyAccountChooserFilterFunc) (McAccount *account,
+typedef gboolean (* EmpathyAccountChooserFilterFunc) (EmpathyAccount *account,
                                                      gpointer   user_data);
 
 
@@ -58,17 +58,17 @@ struct _EmpathyAccountChooserClass {
 
 GType          empathy_account_chooser_get_type           (void) G_GNUC_CONST;
 GtkWidget *    empathy_account_chooser_new                (void);
-McAccount *    empathy_account_chooser_dup_account        (EmpathyAccountChooser *chooser);
+EmpathyAccount *    empathy_account_chooser_dup_account        (EmpathyAccountChooser *chooser);
 TpConnection * empathy_account_chooser_get_connection     (EmpathyAccountChooser *chooser);
 gboolean       empathy_account_chooser_set_account        (EmpathyAccountChooser *chooser,
-                                                          McAccount            *account);
+                                                          EmpathyAccount        *account);
 gboolean       empathy_account_chooser_get_has_all_option (EmpathyAccountChooser *chooser);
 void           empathy_account_chooser_set_has_all_option (EmpathyAccountChooser *chooser,
                                                           gboolean               has_all_option);
 void           empathy_account_chooser_set_filter         (EmpathyAccountChooser *chooser,
                                                           EmpathyAccountChooserFilterFunc filter,
                                                           gpointer               user_data);
-gboolean       empathy_account_chooser_filter_is_connected (McAccount             *account,
+gboolean       empathy_account_chooser_filter_is_connected (EmpathyAccount       *account,
                                                           gpointer               user_data);
 
 G_END_DECLS
index 1306f517fbc934b60c089992bba8c97dd733d02e..688a3e0e699d03e7d90886b8d3055473a2e8e02d 100644 (file)
@@ -27,7 +27,6 @@
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-protocol.h>
 
 #include <libempathy/empathy-utils.h>
@@ -44,7 +43,7 @@
 #define IRC_NETWORKS_FILENAME "irc-networks.xml"
 
 typedef struct {
-  McAccount *account;
+  EmpathyAccount *account;
   EmpathyIrcNetworkManager *network_manager;
 
   GtkWidget *vbox_settings;
@@ -70,9 +69,9 @@ static void
 unset_server_params (EmpathyAccountWidgetIrc *settings)
 {
   DEBUG ("Unset server, port and use-ssl");
-  mc_account_unset_param (settings->account, "server");
-  mc_account_unset_param (settings->account, "port");
-  mc_account_unset_param (settings->account, "use-ssl");
+  empathy_account_unset_param (settings->account, "server");
+  empathy_account_unset_param (settings->account, "port");
+  empathy_account_unset_param (settings->account, "use-ssl");
 }
 
 static void
@@ -98,7 +97,7 @@ update_server_params (EmpathyAccountWidgetIrc *settings)
 
   g_object_get (network, "charset", &charset, NULL);
   DEBUG ("Setting charset to %s", charset);
-  mc_account_set_param_string (settings->account, "charset", charset);
+  empathy_account_set_param_string (settings->account, "charset", charset);
   g_free (charset);
 
   servers = empathy_irc_network_get_servers (network);
@@ -117,11 +116,11 @@ update_server_params (EmpathyAccountWidgetIrc *settings)
           NULL);
 
       DEBUG ("Setting server to %s", address);
-      mc_account_set_param_string (settings->account, "server", address);
+      empathy_account_set_param_string (settings->account, "server", address);
       DEBUG ("Setting port to %u", port);
-      mc_account_set_param_int (settings->account, "port", port);
+      empathy_account_set_param_int (settings->account, "port", port);
       DEBUG ("Setting use-ssl to %s", ssl ? "TRUE": "FALSE" );
-      mc_account_set_param_boolean (settings->account, "use-ssl", ssl);
+      empathy_account_set_param_boolean (settings->account, "use-ssl", ssl);
 
       g_free (address);
     }
@@ -332,17 +331,17 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings)
   gboolean ssl = FALSE;
   EmpathyIrcNetwork *network = NULL;
 
-  mc_account_get_param_string (settings->account, "account", &nick);
-  mc_account_get_param_string (settings->account, "fullname", &fullname);
-  mc_account_get_param_string (settings->account, "server", &server);
-  mc_account_get_param_string (settings->account, "charset", &charset);
-  mc_account_get_param_int (settings->account, "port", &port);
-  mc_account_get_param_boolean (settings->account, "use-ssl", &ssl);
+  nick = empathy_account_get_param_string (settings->account, "account");
+  fullname = empathy_account_get_param_string (settings->account, "fullname");
+  server = empathy_account_get_param_string (settings->account, "server");
+  charset = empathy_account_get_param_string (settings->account, "charset");
+  port = empathy_account_get_param_int (settings->account, "port");
+  ssl = empathy_account_get_param_boolean (settings->account, "use-ssl");
 
   if (!nick)
     {
       nick = g_strdup (g_get_user_name ());
-      mc_account_set_param_string (settings->account, "account", nick);
+      empathy_account_set_param_string (settings->account, "account", nick);
     }
 
   if (!fullname)
@@ -352,7 +351,7 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings)
         {
           fullname = g_strdup (nick);
         }
-      mc_account_set_param_string (settings->account, "fullname", fullname);
+      empathy_account_set_param_string (settings->account, "fullname", fullname);
     }
 
   if (server != NULL)
@@ -414,14 +413,14 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings)
 
 /**
  * empathy_account_widget_irc_new:
- * @account: the #McAccount to configure
+ * @account: the #EmpathyAccount to configure
  *
- * Creates a new IRC account widget to configure a given #McAccount
+ * Creates a new IRC account widget to configure a given #EmpathyAccount
  *
  * Returns: The toplevel container of the configuration widget
  */
 GtkWidget *
-empathy_account_widget_irc_new (McAccount *account)
+empathy_account_widget_irc_new (EmpathyAccount *account)
 {
   EmpathyAccountWidgetIrc *settings;
   gchar *dir, *user_file_with_path, *global_file_with_path;
index a89081fc07d54ba0de23c9c608baed4fb7f7249b..40e58bbc313e337d36241cc49c080317790c2d0e 100644 (file)
 #define __EMPATHY_ACCOUNT_WIDGET_IRC_H__
 
 #include <gtk/gtk.h>
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
-GtkWidget * empathy_account_widget_irc_new (McAccount *account);
+GtkWidget * empathy_account_widget_irc_new (EmpathyAccount *account);
 
 G_END_DECLS
 
index da6082495108ceead1cf6f8d6a2f7aea7fa8d80a..05e917e5371bdd21a4cd7fdb14f8128fd21f40cf 100644 (file)
@@ -28,7 +28,6 @@
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-protocol.h>
 
 #include <libempathy/empathy-utils.h>
@@ -38,7 +37,7 @@
 #include "empathy-ui-utils.h"
 
 typedef struct {
-  McAccount *account;
+  EmpathyAccount *account;
 
   GtkWidget *vbox_settings;
 
@@ -69,14 +68,14 @@ account_widget_sip_discover_stun_toggled_cb (
 
 /**
  * empathy_account_widget_sip_new:
- * @account: the #McAccount to configure
+ * @account: the #EmpathyAccount to configure
  *
- * Creates a new SIP account widget to configure a given #McAccount
+ * Creates a new SIP account widget to configure a given #EmpathyAccount
  *
  * Returns: The toplevel container of the configuration widget
  */
 GtkWidget *
-empathy_account_widget_sip_new (McAccount *account)
+empathy_account_widget_sip_new (EmpathyAccount *account)
 {
   EmpathyAccountWidgetSip *settings;
   GtkBuilder *gui;
index 9187c1e0c4ee015d93567a14046c552921766677..69f60aacc7bfbc62e05769ba78761b783c0a6e38 100644 (file)
 #define __EMPATHY_ACCOUNT_WIDGET_SIP_H__
 
 #include <gtk/gtk.h>
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
-GtkWidget * empathy_account_widget_sip_new (McAccount *account);
+GtkWidget * empathy_account_widget_sip_new (EmpathyAccount *account);
 
 G_END_DECLS
 
index 669869a4dd4fe06eec2d6ac0b9b4bdda6d31f734..f602cd8bda74237a9754ead352c3d399e32cafdf 100644 (file)
 #include <gtk/gtk.h>
 #include <glib/gi18n-lib.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-protocol.h>
 
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-account.h>
 
 #include "empathy-account-widget.h"
 #include "empathy-ui-utils.h"
@@ -43,7 +43,7 @@
 static gboolean
 account_widget_entry_focus_cb (GtkWidget     *widget,
                               GdkEventFocus *event,
-                              McAccount     *account)
+                              EmpathyAccount     *account)
 {
        const gchar *str;
        const gchar *param_name;
@@ -54,8 +54,8 @@ account_widget_entry_focus_cb (GtkWidget     *widget,
        if (EMP_STR_EMPTY (str)) {
                gchar *value = NULL;
 
-               mc_account_unset_param (account, param_name);
-               mc_account_get_param_string (account, param_name, &value);
+               empathy_account_unset_param (account, param_name);
+               value = empathy_account_get_param_string (account, param_name);
                DEBUG ("Unset %s and restore to %s", param_name, value);
                gtk_entry_set_text (GTK_ENTRY (widget), value ? value : "");
                g_free (value);
@@ -64,7 +64,7 @@ account_widget_entry_focus_cb (GtkWidget     *widget,
                const gchar *domain = NULL;
                gchar       *dup_str = NULL;
 
-               profile = mc_account_get_profile (account);
+               profile = empathy_account_get_profile (account);
                if (mc_profile_get_capabilities (profile) &
                    MC_PROFILE_CAPABILITY_SPLIT_ACCOUNT) {
                        domain = mc_profile_get_default_account_domain (profile);
@@ -78,7 +78,7 @@ account_widget_entry_focus_cb (GtkWidget     *widget,
                }
                DEBUG ("Setting %s to %s", param_name,
                        strstr (param_name, "password") ? "***" : str);
-               mc_account_set_param_string (account, param_name, str);
+               empathy_account_set_param_string (account, param_name, str);
                g_free (dup_str);
                g_object_unref (profile);
        }
@@ -88,7 +88,7 @@ account_widget_entry_focus_cb (GtkWidget     *widget,
 
 static void
 account_widget_int_changed_cb (GtkWidget *widget,
-                              McAccount *account)
+                              EmpathyAccount *account)
 {
        const gchar *param_name;
        gint         value;
@@ -97,19 +97,19 @@ account_widget_int_changed_cb (GtkWidget *widget,
        param_name = g_object_get_data (G_OBJECT (widget), "param_name");
 
        if (value == 0) {
-               mc_account_unset_param (account, param_name);
-               mc_account_get_param_int (account, param_name, &value);
+               empathy_account_unset_param (account, param_name);
+               value = empathy_account_get_param_int (account, param_name);
                DEBUG ("Unset %s and restore to %d", param_name, value);
                gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
        } else {
                DEBUG ("Setting %s to %d", param_name, value);
-               mc_account_set_param_int (account, param_name, value);
+               empathy_account_set_param_int (account, param_name, value);
        }
 }
 
 static void
 account_widget_checkbutton_toggled_cb (GtkWidget *widget,
-                                      McAccount *account)
+                                      EmpathyAccount *account)
 {
        gboolean     value;
        gboolean     default_value;
@@ -121,14 +121,14 @@ account_widget_checkbutton_toggled_cb (GtkWidget *widget,
        /* FIXME: This is ugly! checkbox don't have a "not-set" value so we
         * always unset the param and set the value if different from the
         * default value. */
-       mc_account_unset_param (account, param_name);
-       mc_account_get_param_boolean (account, param_name, &default_value);
+       empathy_account_unset_param (account, param_name);
+       default_value = empathy_account_get_param_boolean (account, param_name);
 
        if (default_value == value) {
                DEBUG ("Unset %s and restore to %d", param_name, default_value);
        } else {
                DEBUG ("Setting %s to %d", param_name, value);
-               mc_account_set_param_boolean (account, param_name, value);
+               empathy_account_set_param_boolean (account, param_name, value);
        }
 }
 
@@ -136,14 +136,14 @@ static void
 account_widget_forget_clicked_cb (GtkWidget *button,
                                  GtkWidget *entry)
 {
-       McAccount   *account;
+       EmpathyAccount   *account;
        const gchar *param_name;
 
        param_name = g_object_get_data (G_OBJECT (entry), "param_name");
        account = g_object_get_data (G_OBJECT (entry), "account");
 
        DEBUG ("Unset %s", param_name);
-       mc_account_unset_param (account, param_name);
+       empathy_account_unset_param (account, param_name);
        gtk_entry_set_text (GTK_ENTRY (entry), "");
 }
 
@@ -161,13 +161,13 @@ static void
 account_widget_jabber_ssl_toggled_cb (GtkWidget *checkbutton_ssl,
                                      GtkWidget *spinbutton_port)
 {
-       McAccount *account;
+       EmpathyAccount *account;
        gboolean   value;
        gint       port = 0;
 
        value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton_ssl));
        account = g_object_get_data (G_OBJECT (spinbutton_port), "account");
-       mc_account_get_param_int (account, "port", &port);
+       port = empathy_account_get_param_int (account, "port");
 
        if (value) {
                if (port == 5222 || port == 0) {
@@ -184,7 +184,7 @@ account_widget_jabber_ssl_toggled_cb (GtkWidget *checkbutton_ssl,
 
 static void
 account_widget_setup_widget (GtkWidget   *widget,
-                            McAccount   *account,
+                            EmpathyAccount   *account,
                             const gchar *param_name)
 {
        g_object_set_data_full (G_OBJECT (widget), "param_name",
@@ -195,7 +195,7 @@ account_widget_setup_widget (GtkWidget   *widget,
        if (GTK_IS_SPIN_BUTTON (widget)) {
                gint value = 0;
 
-               mc_account_get_param_int (account, param_name, &value);
+               value = empathy_account_get_param_int (account, param_name);
                gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
 
                g_signal_connect (widget, "value-changed",
@@ -205,7 +205,7 @@ account_widget_setup_widget (GtkWidget   *widget,
        else if (GTK_IS_ENTRY (widget)) {
                gchar *str = NULL;
 
-               mc_account_get_param_string (account, param_name, &str);
+               str = empathy_account_get_param_string (account, param_name);
                gtk_entry_set_text (GTK_ENTRY (widget), str ? str : "");
                g_free (str);
 
@@ -220,7 +220,7 @@ account_widget_setup_widget (GtkWidget   *widget,
        else if (GTK_IS_TOGGLE_BUTTON (widget)) {
                gboolean value = FALSE;
 
-               mc_account_get_param_boolean (account, param_name, &value);
+               value = empathy_account_get_param_boolean (account, param_name);
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
 
                g_signal_connect (widget, "toggled",
@@ -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,12 +251,12 @@ account_widget_generic_format_param_name (const gchar *param_name)
 
                p++;
        }
-       
+
        return str;
 }
 
 static void
-accounts_widget_generic_setup (McAccount *account,
+accounts_widget_generic_setup (EmpathyAccount *account,
                               GtkWidget *table_common_settings,
                               GtkWidget *table_advanced_settings)
 {
@@ -264,7 +264,7 @@ accounts_widget_generic_setup (McAccount *account,
        McProfile  *profile;
        GSList     *params, *l;
 
-       profile = mc_account_get_profile (account);
+       profile = empathy_account_get_profile (account);
        protocol = mc_profile_get_protocol (profile);
 
        if (!protocol) {
@@ -400,7 +400,7 @@ accounts_widget_generic_setup (McAccount *account,
 }
 
 static void
-account_widget_handle_params_valist (McAccount   *account,
+account_widget_handle_params_valist (EmpathyAccount   *account,
                                     GtkBuilder  *gui,
                                     const gchar *first_widget,
                                     va_list      args)
@@ -424,14 +424,13 @@ account_widget_handle_params_valist (McAccount   *account,
 }
 
 void
-empathy_account_widget_handle_params (McAccount   *account,
+empathy_account_widget_handle_params (EmpathyAccount   *account,
                                      GtkBuilder  *gui,
                                      const gchar *first_widget,
                                      ...)
 {
        va_list args;
 
-       g_return_if_fail (MC_IS_ACCOUNT (account));
        g_return_if_fail (GTK_IS_BUILDER (gui));
 
        va_start (args, first_widget);
@@ -440,7 +439,7 @@ empathy_account_widget_handle_params (McAccount   *account,
 }
 
 void
-empathy_account_widget_add_forget_button (McAccount   *account,
+empathy_account_widget_add_forget_button (EmpathyAccount   *account,
                                          GtkBuilder  *gui,
                                          const gchar *button,
                                          const gchar *entry)
@@ -448,11 +447,11 @@ 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));
 
-       mc_account_get_param_string (account, "password", &password);
+       password = empathy_account_get_param_string (account, "password");
        gtk_widget_set_sensitive (button_forget, !EMP_STR_EMPTY (password));
        g_free (password);
 
@@ -477,7 +476,7 @@ empathy_account_widget_set_default_focus (GtkBuilder  *gui,
 }
 
 GtkWidget *
-empathy_account_widget_generic_new (McAccount *account)
+empathy_account_widget_generic_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -485,8 +484,6 @@ empathy_account_widget_generic_new (McAccount *account)
        GtkWidget *table_advanced_settings;
        gchar     *filename;
 
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
-
        filename = empathy_file_lookup ("empathy-account-widget-generic.ui",
                                        "libempathy-gtk");
        gui = empathy_builder_get_file (filename,
@@ -502,7 +499,7 @@ empathy_account_widget_generic_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_salut_new (McAccount *account)
+empathy_account_widget_salut_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -530,7 +527,7 @@ empathy_account_widget_salut_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_msn_new (McAccount *account)
+empathy_account_widget_msn_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -560,7 +557,7 @@ empathy_account_widget_msn_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_jabber_new (McAccount *account)
+empathy_account_widget_jabber_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -603,7 +600,7 @@ empathy_account_widget_jabber_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_icq_new (McAccount *account)
+empathy_account_widget_icq_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -636,7 +633,7 @@ empathy_account_widget_icq_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_aim_new (McAccount *account)
+empathy_account_widget_aim_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -668,7 +665,7 @@ empathy_account_widget_aim_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_yahoo_new (McAccount *account)
+empathy_account_widget_yahoo_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
@@ -702,7 +699,7 @@ empathy_account_widget_yahoo_new (McAccount *account)
 }
 
 GtkWidget *
-empathy_account_widget_groupwise_new (McAccount *account)
+empathy_account_widget_groupwise_new (EmpathyAccount *account)
 {
        GtkBuilder *gui;
        GtkWidget *widget;
index 7287f56751acfd76272328364ad9d4bc2654abf9..7a76db9e067ba5a62b5c38995a44f68e7448a6ec 100644 (file)
 
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
-void       empathy_account_widget_handle_params     (McAccount   *account,
+void       empathy_account_widget_handle_params     (EmpathyAccount   *account,
                                                     GtkBuilder  *gui,
                                                     const gchar *first_widget,
                                                     ...);
-void       empathy_account_widget_add_forget_button (McAccount   *account,
+void       empathy_account_widget_add_forget_button (EmpathyAccount   *account,
                                                     GtkBuilder  *gui,
                                                     const gchar *button,
                                                     const gchar *entry);
 void      empathy_account_widget_set_default_focus (GtkBuilder  *gui,
                                                     const gchar *entry);
-GtkWidget *empathy_account_widget_generic_new       (McAccount   *account);
-GtkWidget *empathy_account_widget_salut_new         (McAccount   *account);
-GtkWidget *empathy_account_widget_msn_new           (McAccount   *account);
-GtkWidget *empathy_account_widget_jabber_new        (McAccount   *account);
-GtkWidget *empathy_account_widget_icq_new           (McAccount   *account);
-GtkWidget *empathy_account_widget_aim_new           (McAccount   *account);
-GtkWidget *empathy_account_widget_yahoo_new         (McAccount   *account);
-GtkWidget *empathy_account_widget_groupwise_new     (McAccount   *account);
+GtkWidget *empathy_account_widget_generic_new       (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_salut_new         (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_msn_new           (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_jabber_new        (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_icq_new           (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_aim_new           (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_yahoo_new         (EmpathyAccount   *account);
+GtkWidget *empathy_account_widget_groupwise_new     (EmpathyAccount   *account);
 
 G_END_DECLS
 
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..5ed7c69c3e99e0eeb7ba9f8ac1f707d9e1ea2bf2 100644 (file)
@@ -34,9 +34,9 @@
 #include <gtk/gtk.h>
 
 #include <telepathy-glib/util.h>
-#include <libmissioncontrol/mc-account.h>
 
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-account.h>
 
 #include "empathy-chat-text-view.h"
 #include "empathy-chat.h"
@@ -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 f25734a10562a0cb25668d49dce188f207de8375..1729e53054f5de8a1311dfd2d41e80fe87d6479d 100644 (file)
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyChat)
 typedef struct {
        EmpathyTpChat     *tp_chat;
-       McAccount         *account;
+       EmpathyAccount    *account;
        gchar             *id;
        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;
@@ -193,13 +201,13 @@ chat_new_connection_cb (EmpathyAccountManager *manager,
                        EmpathyChat *chat)
 {
        EmpathyChatPriv *priv = GET_PRIV (chat);
-       McAccount *account;
+       EmpathyAccount *account;
 
        account = empathy_account_manager_get_account (manager, connection);
        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;
@@ -1239,15 +1247,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;
 
@@ -1278,34 +1289,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);
@@ -1314,7 +1338,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");
@@ -1339,7 +1363,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
@@ -1424,7 +1448,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);
@@ -1582,42 +1606,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));
+                                                             EMPATHY_TYPE_ACCOUNT,
+                                                             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",
@@ -1670,6 +1708,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 =
@@ -1762,7 +1804,7 @@ empathy_chat_set_tp_chat (EmpathyChat   *chat,
        show_pending_messages (chat);
 }
 
-McAccount *
+EmpathyAccount *
 empathy_chat_get_account (EmpathyChat *chat)
 {
        EmpathyChatPriv *priv = GET_PRIV (chat);
index 12fac9617910f4e1a9a0406483fc1ab25262bc61..c7158759a0ef23ad86a2d377b667b786e1f02a13 100644 (file)
@@ -66,7 +66,7 @@ EmpathyChat *      empathy_chat_new                  (EmpathyTpChat *tp_chat);
 EmpathyTpChat *    empathy_chat_get_tp_chat          (EmpathyChat   *chat);
 void               empathy_chat_set_tp_chat          (EmpathyChat   *chat,
                                                      EmpathyTpChat *tp_chat);
-McAccount *        empathy_chat_get_account          (EmpathyChat   *chat);
+EmpathyAccount *        empathy_chat_get_account          (EmpathyChat   *chat);
 const gchar *      empathy_chat_get_id               (EmpathyChat   *chat);
 const gchar *      empathy_chat_get_name             (EmpathyChat   *chat);
 const gchar *      empathy_chat_get_subject          (EmpathyChat   *chat);
@@ -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..c1cca3e2bf84233c5d1cd8009d394098f497446b 100644 (file)
@@ -328,26 +328,18 @@ empathy_contact_personal_dialog_show (GtkWindow *parent)
  */
 
 static gboolean
-can_add_contact_to_account (McAccount *account,
+can_add_contact_to_account (EmpathyAccount *account,
                            gpointer   user_data)
 {
-       EmpathyAccountManager *account_manager;
        EmpathyContactManager *contact_manager;
        TpConnection          *connection;
        gboolean               result;
 
-       account_manager = empathy_account_manager_dup_singleton ();
-       connection = empathy_account_manager_get_connection (account_manager,
-                                                            account);
-       if (!connection) {
-               g_object_unref (account_manager);
-               return FALSE;
-       }
+       connection = empathy_account_get_connection (account);
 
        contact_manager = empathy_contact_manager_dup_singleton ();
        result = empathy_contact_manager_can_add (contact_manager, connection);
        g_object_unref (contact_manager);
-       g_object_unref (account_manager);
 
        return result;
 }
@@ -398,7 +390,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..f7b506e7c452d0b90df09566c23a09739bfad43e 100644 (file)
@@ -32,7 +32,6 @@
 #include <gtk/gtk.h>
 
 #include <telepathy-glib/util.h>
-#include <libmissioncontrol/mc-account.h>
 
 #include <libempathy/empathy-account-manager.h>
 #include <libempathy/empathy-call-factory.h>
@@ -121,7 +120,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 +229,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);
        }
 }
@@ -247,7 +246,7 @@ contact_list_view_drag_data_received (GtkWidget         *view,
        EmpathyContactListViewPriv *priv;
        EmpathyAccountManager      *account_manager;
        EmpathyTpContactFactory    *factory = NULL;
-       McAccount                  *account;
+       EmpathyAccount             *account;
        GtkTreeModel               *model;
        GtkTreeViewDropPosition     position;
        GtkTreePath                *path;
@@ -302,19 +301,17 @@ contact_list_view_drag_data_received (GtkWidget         *view,
        strv = g_strsplit (id, "/", 2);
        account_id = strv[0];
        contact_id = strv[1];
-       account = mc_account_lookup (account_id);
+  account_manager = empathy_account_manager_dup_singleton ();
+       account = empathy_account_manager_lookup (account_manager, account_id);
        if (account) {
                TpConnection *connection;
 
-               /* FIXME: We assume we have already an account manager */
-               account_manager = empathy_account_manager_dup_singleton ();
-               connection = empathy_account_manager_get_connection (account_manager,
-                                                                    account);
+               connection = empathy_account_get_connection (account);
                if (connection) {
                        factory = empathy_tp_contact_factory_dup_singleton (connection);
                }
-               g_object_unref (account_manager);
        }
+       g_object_unref (account_manager);
 
        if (!factory) {
                DEBUG ("Failed to get factory for account '%s'", account_id);
@@ -451,7 +448,7 @@ contact_list_view_drag_data_get (GtkWidget        *widget,
        GtkTreeIter                 iter;
        GtkTreeModel               *model;
        EmpathyContact             *contact;
-       McAccount                  *account;
+       EmpathyAccount             *account;
        const gchar                *contact_id;
        const gchar                *account_id;
        gchar                      *str;
@@ -481,7 +478,7 @@ contact_list_view_drag_data_get (GtkWidget        *widget,
        }
 
        account = empathy_contact_get_account (contact);
-       account_id = mc_account_get_unique_name (account);
+       account_id = empathy_account_get_unique_name (account);
        contact_id = empathy_contact_get_id (contact);
        g_object_unref (contact);
        str = g_strconcat (account_id, "/", contact_id, NULL);
@@ -1272,7 +1269,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 +1341,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 +1443,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 +1452,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 12a1393034f3baac6ca219d4be3275d9f0127f41..7e80d0d65b0b9f7366d526f499c13e5e7e73a34e 100644 (file)
@@ -32,7 +32,6 @@
 #include <champlain-gtk/champlain-gtk.h>
 #endif
 
-#include <libmissioncontrol/mc-account.h>
 #include <telepathy-glib/util.h>
 
 #include <libempathy/empathy-tp-contact-factory.h>
@@ -41,6 +40,7 @@
 #include <libempathy/empathy-location.h>
 #include <libempathy/empathy-time.h>
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-account.h>
 
 #include "empathy-contact-widget.h"
 #include "empathy-account-chooser.h"
@@ -697,7 +697,7 @@ contact_widget_contact_setup (EmpathyContactWidget *information)
 static void
 contact_widget_contact_update (EmpathyContactWidget *information)
 {
-  McAccount *account = NULL;
+  EmpathyAccount *account = NULL;
   const gchar *id = NULL;
 
   /* Connect and get info from new contact */
@@ -737,7 +737,7 @@ contact_widget_contact_update (EmpathyContactWidget *information)
         {
           const gchar *name;
 
-          name = mc_account_get_display_name (account);
+          name = empathy_account_get_display_name (account);
           gtk_label_set_label (GTK_LABEL (information->widget_account), name);
         }
     }
index 63222badc0e9dbb832b83a0aceb91511e92b5c2c..e6b4a6f7fac4a76c12b491f483cb3411fd561a8c 100644 (file)
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-protocol.h>
 
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-account.h>
 
 #include <libempathy/empathy-irc-network-manager.h>
 #include "empathy-ui-utils.h"
index dc2efa33246d7ad93f4d8eb7e7209749a12014b4..f05017c9c22ba2eb83df8126abf83a159938d753 100644 (file)
@@ -31,6 +31,7 @@
 #include <gtk/gtk.h>
 
 #include <libempathy/empathy-log-manager.h>
+#include <libempathy/empathy-account-manager.h>
 #include <libempathy/empathy-chatroom-manager.h>
 #include <libempathy/empathy-chatroom.h>
 #include <libempathy/empathy-message.h>
@@ -94,11 +95,11 @@ static void     log_window_chats_setup                     (EmpathyLogWindow *wi
 static void     log_window_chats_accounts_changed_cb       (GtkWidget        *combobox,
                                                            EmpathyLogWindow *window);
 static void     log_window_chats_set_selected              (EmpathyLogWindow *window,
-                                                           McAccount        *account,
+                                                           EmpathyAccount   *account,
                                                            const gchar      *chat_id,
                                                            gboolean          is_chatroom);
 static gboolean log_window_chats_get_selected              (EmpathyLogWindow *window,
-                                                           McAccount       **account,
+                                                           EmpathyAccount  **account,
                                                            gchar           **chat_id,
                                                            gboolean         *is_chatroom);
 static void     log_window_chats_get_messages              (EmpathyLogWindow *window,
@@ -134,14 +135,14 @@ enum {
 };
 
 GtkWidget *
-empathy_log_window_show (McAccount   *account,
+empathy_log_window_show (EmpathyAccount   *account,
                        const gchar *chat_id,
                        gboolean     is_chatroom,
                        GtkWindow   *parent)
 {
        static EmpathyLogWindow *window = NULL;
        EmpathyAccountChooser   *account_chooser;
-       GList                  *accounts;
+       EmpathyAccountManager  *account_manager;
        gint                    account_num;
        GtkBuilder             *gui;
        gchar                  *filename;
@@ -228,9 +229,9 @@ empathy_log_window_show (McAccount   *account,
                          window);
 
        /* Populate */
-       accounts = mc_accounts_list ();
-       account_num = g_list_length (accounts);
-       mc_accounts_list_free (accounts);
+       account_manager = empathy_account_manager_dup_singleton ();
+       account_num = empathy_account_manager_get_count (account_manager);
+       g_object_unref (account_manager);
 
        if (account_num > 1) {
                gtk_widget_show (window->vbox_chats);
@@ -301,7 +302,7 @@ log_window_find_changed_cb (GtkTreeSelection *selection,
        GtkTreeView   *view;
        GtkTreeModel  *model;
        GtkTreeIter    iter;
-       McAccount     *account;
+       EmpathyAccount     *account;
        gchar         *chat_id;
        gboolean       is_chatroom;
        gchar         *date;
@@ -320,7 +321,7 @@ log_window_find_changed_cb (GtkTreeSelection *selection,
                gtk_widget_set_sensitive (window->button_next, FALSE);
 
                empathy_chat_view_clear (window->chatview_find);
-       
+
                return;
        }
 
@@ -417,7 +418,7 @@ log_window_find_populate (EmpathyLogWindow *window,
                }
 
                date_readable = empathy_log_manager_get_date_readable (hit->date);
-               account_name = mc_account_get_display_name (hit->account);
+               account_name = empathy_account_get_display_name (hit->account);
                account_icon = empathy_icon_name_from_account (hit->account);
 
                gtk_list_store_append (store, &iter);
@@ -464,7 +465,7 @@ log_window_find_setup (EmpathyLogWindow *window)
        store = gtk_list_store_new (COL_FIND_COUNT,
                                    G_TYPE_STRING,          /* account icon name */
                                    G_TYPE_STRING,          /* account name */
-                                   MC_TYPE_ACCOUNT,        /* account */
+                                   EMPATHY_TYPE_ACCOUNT,   /* account */
                                    G_TYPE_STRING,          /* chat name */
                                    G_TYPE_STRING,          /* chat id */
                                    G_TYPE_BOOLEAN,         /* is chatroom */
@@ -608,7 +609,7 @@ static void
 log_window_chats_populate (EmpathyLogWindow *window)
 {
        EmpathyAccountChooser *account_chooser;
-       McAccount            *account;
+       EmpathyAccount       *account;
        GList                *chats, *l;
 
        GtkTreeView          *view;
@@ -646,7 +647,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,
@@ -684,11 +685,11 @@ log_window_chats_setup (EmpathyLogWindow *window)
 
        /* new store */
        store = gtk_list_store_new (COL_CHAT_COUNT,
-                                   G_TYPE_STRING,    /* icon */
-                                   G_TYPE_STRING,    /* name */
-                                   MC_TYPE_ACCOUNT,  /* account */
-                                   G_TYPE_STRING,    /* id */
-                                   G_TYPE_BOOLEAN);  /* is chatroom */
+                                   G_TYPE_STRING,        /* icon */
+                                   G_TYPE_STRING,        /* name */
+                                   EMPATHY_TYPE_ACCOUNT, /* account */
+                                   G_TYPE_STRING,        /* id */
+                                   G_TYPE_BOOLEAN);      /* is chatroom */
 
        model = GTK_TREE_MODEL (store);
        sortable = GTK_TREE_SORTABLE (store);
@@ -739,7 +740,7 @@ log_window_chats_accounts_changed_cb (GtkWidget       *combobox,
 
 static void
 log_window_chats_set_selected  (EmpathyLogWindow *window,
-                               McAccount       *account,
+                               EmpathyAccount  *account,
                                const gchar     *chat_id,
                                gboolean         is_chatroom)
 {
@@ -763,7 +764,7 @@ log_window_chats_set_selected  (EmpathyLogWindow *window,
        }
 
        for (ok = TRUE; ok; ok = gtk_tree_model_iter_next (model, &iter)) {
-               McAccount *this_account;
+               EmpathyAccount *this_account;
                gchar     *this_chat_id;
                gboolean   this_is_chatroom;
 
@@ -792,7 +793,7 @@ log_window_chats_set_selected  (EmpathyLogWindow *window,
 
 static gboolean
 log_window_chats_get_selected (EmpathyLogWindow  *window,
-                              McAccount       **account,
+                              EmpathyAccount  **account,
                               gchar           **chat_id,
                               gboolean         *is_chatroom)
 {
@@ -801,7 +802,7 @@ log_window_chats_get_selected (EmpathyLogWindow  *window,
        GtkTreeSelection *selection;
        GtkTreeIter       iter;
        gchar            *id = NULL;
-       McAccount        *acc = NULL;
+       EmpathyAccount   *acc = NULL;
        gboolean          room = FALSE;
 
        view = GTK_TREE_VIEW (window->treeview_chats);
@@ -839,7 +840,7 @@ static void
 log_window_chats_get_messages (EmpathyLogWindow *window,
                               const gchar     *date_to_show)
 {
-       McAccount     *account;
+       EmpathyAccount     *account;
        gchar         *chat_id;
        gboolean       is_chatroom;
        EmpathyMessage *message;
@@ -999,7 +1000,7 @@ static void
 log_window_calendar_chats_month_changed_cb (GtkWidget       *calendar,
                                            EmpathyLogWindow *window)
 {
-       McAccount     *account;
+       EmpathyAccount     *account;
        gchar         *chat_id;
        gboolean       is_chatroom;
        guint          year_selected;
index 6dd8c03037de5f549a99c427cdf8152a1799ad9e..298d9609960397667b2b539ebaf271a72bfc36b8 100644 (file)
 #ifndef __EMPATHY_LOG_WINDOW_H__
 #define __EMPATHY_LOG_WINDOW_H__
 
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
-GtkWidget * empathy_log_window_show (McAccount   *account,
+GtkWidget * empathy_log_window_show (EmpathyAccount   *account,
                                     const gchar *chat_id,
                                     gboolean     chatroom,
                                     GtkWindow   *parent);
index 512cd1ba384615e4ab2179d17e99fa7e57a0c147..77b368bd9bd43162b342cfd2c775c5633fa97e0b 100644 (file)
@@ -27,7 +27,6 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n-lib.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mission-control.h>
 
 #include <libempathy/empathy-call-factory.h>
@@ -35,6 +34,7 @@
 #include <libempathy/empathy-contact-manager.h>
 #include <libempathy/empathy-dispatcher.h>
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-account.h>
 
 #define DEBUG_FLAG EMPATHY_DEBUG_CONTACT
 #include <libempathy/empathy-debug.h>
@@ -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 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);
 
diff --git a/libempathy-gtk/empathy-sound.c b/libempathy-gtk/empathy-sound.c
new file mode 100644 (file)
index 0000000..d97f72b
--- /dev/null
@@ -0,0 +1,385 @@
+/*
+ * empathy-sound.c - Various sound related utility functions.
+ * Copyright (C) 2009 Collabora Ltd.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include <config.h>
+
+#include "empathy-sound.h"
+
+#include <canberra-gtk.h>
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+
+#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+#include <libempathy/empathy-debug.h>
+#include <libempathy/empathy-utils.h>
+
+#include "empathy-conf.h"
+
+typedef struct {
+  EmpathySound sound_id;
+  const char * event_ca_id;
+  const char * event_ca_description;
+  const char * gconf_key;
+} EmpathySoundEntry;
+
+typedef struct {
+  GtkWidget *widget;
+  gint sound_id;
+  guint play_interval;
+  guint replay_timeout_id;
+} EmpathyRepeatableSound;
+
+/* NOTE: these entries MUST be in the same order than EmpathySound enum */
+static EmpathySoundEntry sound_entries[LAST_EMPATHY_SOUND] = {
+  { EMPATHY_SOUND_MESSAGE_INCOMING, "message-new-instant",
+    N_("Received an instant message"), EMPATHY_PREFS_SOUNDS_INCOMING_MESSAGE } ,
+  { EMPATHY_SOUND_MESSAGE_OUTGOING, "message-sent-instant",
+    N_("Sent an instant message"), EMPATHY_PREFS_SOUNDS_OUTGOING_MESSAGE } ,
+  { EMPATHY_SOUND_CONVERSATION_NEW, "message-new-instant",
+    N_("Incoming chat request"), EMPATHY_PREFS_SOUNDS_NEW_CONVERSATION },
+  { EMPATHY_SOUND_CONTACT_CONNECTED, "service-login",
+    N_("Contact connected"), EMPATHY_PREFS_SOUNDS_CONTACT_LOGIN },
+  { EMPATHY_SOUND_CONTACT_DISCONNECTED, "service-logout",
+    N_("Contact disconnected"), EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT },
+  { EMPATHY_SOUND_ACCOUNT_CONNECTED, "service-login",
+    N_("Connected to server"), EMPATHY_PREFS_SOUNDS_SERVICE_LOGIN },
+  { EMPATHY_SOUND_ACCOUNT_DISCONNECTED, "service-logout",
+    N_("Disconnected from server"), EMPATHY_PREFS_SOUNDS_SERVICE_LOGOUT },
+  { EMPATHY_SOUND_PHONE_INCOMING, "phone-incoming-call",
+    N_("Incoming voice call"), NULL },
+  { EMPATHY_SOUND_PHONE_OUTGOING, "phone-outgoing-calling",
+    N_("Outgoing voice call"), NULL },
+  { EMPATHY_SOUND_PHONE_HANGUP, "phone-hangup",
+    N_("Voice call ended"), NULL },
+};
+
+/* An hash table containing currently repeating sounds. The format is the
+ * following:
+ * Key: An EmpathySound
+ * Value : The EmpathyRepeatableSound associated with that EmpathySound. */
+static GHashTable *repeating_sounds;
+
+static gboolean
+empathy_sound_pref_is_enabled (EmpathySound sound_id)
+{
+  EmpathySoundEntry *entry;
+  EmpathyConf *conf;
+  gboolean res;
+
+  entry = &(sound_entries[sound_id]);
+  g_return_val_if_fail (entry->sound_id == sound_id, FALSE);
+
+  if (entry->gconf_key == NULL)
+    return TRUE;
+
+  conf = empathy_conf_get ();
+  res = FALSE;
+
+  empathy_conf_get_bool (conf, EMPATHY_PREFS_SOUNDS_ENABLED, &res);
+
+  if (!res)
+    return FALSE;
+
+  if (!empathy_check_available_state ())
+    {
+      empathy_conf_get_bool (conf, EMPATHY_PREFS_SOUNDS_DISABLED_AWAY, &res);
+
+      if (res)
+        return FALSE;
+    }
+
+  empathy_conf_get_bool (conf, entry->gconf_key, &res);
+
+  return res;
+}
+
+/**
+ * empathy_sound_stop:
+ * @sound_id: The #EmpathySound to stop playing.
+ *
+ * Stop playing a sound. If it has been stated in loop with
+ * empathy_sound_start_playing(), it will also stop replaying.
+ */
+void
+empathy_sound_stop (EmpathySound sound_id)
+{
+  EmpathySoundEntry *entry;
+
+  g_return_if_fail (sound_id < LAST_EMPATHY_SOUND);
+
+  entry = &(sound_entries[sound_id]);
+  g_return_if_fail (entry->sound_id == sound_id);
+
+  if (repeating_sounds != NULL)
+    {
+      EmpathyRepeatableSound *repeatable_sound;
+
+      repeatable_sound = g_hash_table_lookup (repeating_sounds,
+          GINT_TO_POINTER (sound_id));
+      if (repeatable_sound != NULL)
+        {
+          /* The sound must be stopped... If it is waiting for replay, remove
+           * it from hash table to cancel. Otherwise we'll cancel the sound
+           * being played. */
+          if (repeatable_sound->replay_timeout_id != 0)
+            {
+              g_hash_table_remove (repeating_sounds, GINT_TO_POINTER (sound_id));
+              return;
+            }
+        }
+    }
+
+  ca_context_cancel (ca_gtk_context_get (), entry->sound_id);
+}
+
+static gboolean
+empathy_sound_play_internal (GtkWidget *widget, EmpathySound sound_id,
+  ca_finish_callback_t callback, gpointer user_data)
+{
+  EmpathySoundEntry *entry;
+  ca_context *c;
+  ca_proplist *p = NULL;
+
+  entry = &(sound_entries[sound_id]);
+  g_return_val_if_fail (entry->sound_id == sound_id, FALSE);
+
+  c = ca_gtk_context_get ();
+  ca_context_cancel (c, entry->sound_id);
+
+  DEBUG ("Play sound \"%s\" (%s)",
+         entry->event_ca_id,
+         entry->event_ca_description);
+
+  if (ca_proplist_create (&p) < 0)
+    goto failed;
+
+  if (ca_proplist_sets (p, CA_PROP_EVENT_ID, entry->event_ca_id) < 0)
+    goto failed;
+
+  if (ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION,
+          gettext (entry->event_ca_id)) < 0)
+    goto failed;
+
+  if (ca_gtk_proplist_set_for_widget (p, widget) < 0)
+    goto failed;
+
+  ca_context_play_full (ca_gtk_context_get (), entry->sound_id, p, callback,
+      user_data);
+
+  ca_proplist_destroy (p);
+
+  return TRUE;
+
+failed:
+  if (p != NULL)
+    ca_proplist_destroy (p);
+
+  return FALSE;
+}
+
+/**
+ * empathy_sound_play_full:
+ * @widget: The #GtkWidget from which the sound is originating.
+ * @sound_id: The #EmpathySound to play.
+ * @callback: The #ca_finish_callback_t function that will be called when the
+ *            sound  has stopped playing.
+ * @user_data: user data to pass to the function.
+ *
+ * Plays a sound.
+ *
+ * Returns %TRUE if the sound has successfully started playing, otherwise
+ * returning %FALSE and @callback won't be called.
+ *
+ * This function returns %FALSE if the sound is already playing in loop using
+ * %empathy_sound_start_playing.
+ *
+ * This function returns %FALSE if the sound is disabled in empathy preferences.
+ *
+ * Return value: %TRUE if the sound has successfully started playing, %FALSE
+ *               otherwise.
+ */
+gboolean
+empathy_sound_play_full (GtkWidget *widget, EmpathySound sound_id,
+  ca_finish_callback_t callback, gpointer user_data)
+{
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+  g_return_val_if_fail (sound_id < LAST_EMPATHY_SOUND, FALSE);
+
+  if (!empathy_sound_pref_is_enabled (sound_id))
+    return FALSE;
+
+  /* The sound might already be playing repeatedly. If it's the case, we
+   * immediadely return since there's no need to make it play again */
+  if (repeating_sounds != NULL &&
+      g_hash_table_lookup (repeating_sounds, GINT_TO_POINTER (sound_id)) != NULL)
+    return FALSE;
+
+  return empathy_sound_play_internal (widget, sound_id, callback, user_data);
+}
+
+/**
+ * empathy_sound_play:
+ * @widget: The #GtkWidget from which the sound is originating.
+ * @sound_id: The #EmpathySound to play.
+ *
+ * Plays a sound. See %empathy_sound_play_full for details.'
+ *
+ * Return value: %TRUE if the sound has successfully started playing, %FALSE
+ *               otherwise.
+ */
+gboolean
+empathy_sound_play (GtkWidget *widget, EmpathySound sound_id)
+{
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+  g_return_val_if_fail (sound_id < LAST_EMPATHY_SOUND, FALSE);
+
+  return empathy_sound_play_full (widget, sound_id, NULL, NULL);
+}
+
+static void playing_finished_cb (ca_context *c, guint id, int error_code,
+  gpointer user_data);
+
+static gboolean
+playing_timeout_cb (gpointer data)
+{
+  EmpathyRepeatableSound *repeatable_sound = data;
+  gboolean playing;
+
+  repeatable_sound->replay_timeout_id = 0;
+
+  playing = empathy_sound_play_internal (repeatable_sound->widget,
+      repeatable_sound->sound_id, playing_finished_cb, data);
+
+  if (!playing)
+    {
+      DEBUG ("Failed to replay sound, stop repeating");
+      g_hash_table_remove (repeating_sounds,
+          GINT_TO_POINTER (repeatable_sound->sound_id));
+    }
+
+  return FALSE;
+}
+
+static void
+playing_finished_cb (ca_context *c, guint id, int error_code,
+  gpointer user_data)
+{
+  EmpathyRepeatableSound *repeatable_sound = user_data;
+
+  if (error_code != CA_SUCCESS)
+    {
+      DEBUG ("Error: %s", ca_strerror (error_code));
+      g_hash_table_remove (repeating_sounds,
+          GINT_TO_POINTER (repeatable_sound->sound_id));
+      return;
+    }
+
+  repeatable_sound->replay_timeout_id = g_timeout_add (
+      repeatable_sound->play_interval, playing_timeout_cb, user_data);
+}
+
+static void
+empathy_sound_widget_destroyed_cb (GtkWidget *widget, gpointer user_data)
+{
+  EmpathyRepeatableSound *repeatable_sound = user_data;
+
+  /* The sound must be stopped... If it is waiting for replay, remove
+   * it from hash table to cancel. Otherwise playing_finished_cb will be
+   * called with an error. */
+  if (repeatable_sound->replay_timeout_id != 0)
+    {
+      g_hash_table_remove (repeating_sounds,
+          GINT_TO_POINTER (repeatable_sound->sound_id));
+    }
+}
+
+static void
+repeating_sounds_item_delete (gpointer data)
+{
+  EmpathyRepeatableSound *repeatable_sound = data;
+
+  if (repeatable_sound->replay_timeout_id != 0)
+    g_source_remove (repeatable_sound->replay_timeout_id);
+
+  g_signal_handlers_disconnect_by_func (repeatable_sound->widget,
+      empathy_sound_widget_destroyed_cb, repeatable_sound);
+
+  g_slice_free (EmpathyRepeatableSound, repeatable_sound);
+}
+
+/**
+ * empathy_sound_start_playing:
+ * @widget: The #GtkWidget from which the sound is originating.
+ * @sound_id: The #EmpathySound to play.
+ * @timeout_before_replay: The amount of time, in milliseconds, between two
+ *                         consecutive play.
+ *
+ * Start playing a sound in loop. To stop the sound, call empathy_call_stop ()
+ * by passing it the same @sound_id. Note that if you start playing a sound
+ * multiple times, you'll have to call %empathy_sound_stop the same number of
+ * times.
+ *
+ * Return value: %TRUE if the sound has successfully started playing.
+ */
+gboolean
+empathy_sound_start_playing (GtkWidget *widget, EmpathySound sound_id,
+    guint timeout_before_replay)
+{
+  EmpathyRepeatableSound *repeatable_sound;
+  gboolean playing = FALSE;
+
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+  g_return_val_if_fail (sound_id < LAST_EMPATHY_SOUND, FALSE);
+
+  if (!empathy_sound_pref_is_enabled (sound_id))
+    return FALSE;
+
+  if (repeating_sounds == NULL)
+    {
+      repeating_sounds = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+          NULL, repeating_sounds_item_delete);
+    }
+  else if (g_hash_table_lookup (repeating_sounds,
+               GINT_TO_POINTER (sound_id)) != NULL)
+    {
+      /* The sound is already playing in loop. No need to continue. */
+      return FALSE;
+    }
+
+  repeatable_sound = g_slice_new0 (EmpathyRepeatableSound);
+  repeatable_sound->widget = widget;
+  repeatable_sound->sound_id = sound_id;
+  repeatable_sound->play_interval = timeout_before_replay;
+  repeatable_sound->replay_timeout_id = 0;
+
+  g_hash_table_insert (repeating_sounds, GINT_TO_POINTER (sound_id),
+      repeatable_sound);
+
+  g_signal_connect (G_OBJECT (widget), "destroy",
+      G_CALLBACK (empathy_sound_widget_destroyed_cb),
+      repeatable_sound);
+
+  playing = empathy_sound_play_internal (widget, sound_id, playing_finished_cb,
+        repeatable_sound);
+
+  if (!playing)
+      g_hash_table_remove (repeating_sounds, GINT_TO_POINTER (sound_id));
+
+  return playing;
+}
diff --git a/libempathy-gtk/empathy-sound.h b/libempathy-gtk/empathy-sound.h
new file mode 100644 (file)
index 0000000..f65f626
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * empathy-sound.h - Various sound related utility functions.
+ * Copyright (C) 2009 Collabora Ltd.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+#ifndef __EMPATHY_SOUND_H__
+#define __EMPATHY_SOUND_H__
+
+#include <gtk/gtk.h>
+
+#include <canberra-gtk.h>
+
+G_BEGIN_DECLS
+
+/* NOTE: Keep this sync with sound_entries in empathy-sound.c */
+typedef enum {
+       EMPATHY_SOUND_MESSAGE_INCOMING = 0,
+       EMPATHY_SOUND_MESSAGE_OUTGOING,
+       EMPATHY_SOUND_CONVERSATION_NEW,
+       EMPATHY_SOUND_CONTACT_CONNECTED,
+       EMPATHY_SOUND_CONTACT_DISCONNECTED,
+       EMPATHY_SOUND_ACCOUNT_CONNECTED,
+       EMPATHY_SOUND_ACCOUNT_DISCONNECTED,
+       EMPATHY_SOUND_PHONE_INCOMING,
+       EMPATHY_SOUND_PHONE_OUTGOING,
+       EMPATHY_SOUND_PHONE_HANGUP,
+       LAST_EMPATHY_SOUND,
+} EmpathySound;
+
+gboolean empathy_sound_play (GtkWidget *widget, EmpathySound sound_id);
+void empathy_sound_stop (EmpathySound sound_id);
+
+gboolean empathy_sound_start_playing (GtkWidget *widget, EmpathySound sound_id,
+    guint timeout_before_replay);
+
+gboolean empathy_sound_play_full (GtkWidget *widget, EmpathySound sound_id,
+    ca_finish_callback_t callback, gpointer user_data);
+
+G_END_DECLS
+
+#endif /* #ifndef __EMPATHY_SOUND_H__*/
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..1f1b3b06d906ce457a581b045588867d28001b70 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;
+       EmpathyAccount        *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 = empathy_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..baa6d21de3d491c58b39e3e4a9c9b7b8f123ab03 100644 (file)
@@ -37,7 +37,6 @@
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 #include <gio/gio.h>
-#include <canberra-gtk.h>
 
 #include <libmissioncontrol/mc-profile.h>
 
@@ -184,11 +183,11 @@ empathy_builder_unref_and_keep_widget (GtkBuilder *gui,
 }
 
 const gchar *
-empathy_icon_name_from_account (McAccount *account)
+empathy_icon_name_from_account (EmpathyAccount *account)
 {
        McProfile *profile;
 
-       profile = mc_account_get_profile (account);
+       profile = empathy_account_get_profile (account);
 
        return mc_profile_get_icon_name (profile);
 }
@@ -1311,8 +1310,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);
@@ -1540,140 +1539,4 @@ empathy_receive_file_with_file_chooser (EmpathyFTHandler *handler)
                G_CALLBACK (file_manager_receive_file_response_cb), handler);
 
        gtk_widget_show (widget);
-}
-
-typedef struct {
-       EmpathySound sound_id;
-       const char * event_ca_id;
-       const char * event_ca_description;
-       const char * gconf_key;
-} EmpathySoundEntry;
-
-/* NOTE: these entries MUST be in the same order than EmpathySound enum */
-static EmpathySoundEntry sound_entries[LAST_EMPATHY_SOUND] = {
-       { EMPATHY_SOUND_MESSAGE_INCOMING, "message-new-instant",
-         N_("Received an instant message"), EMPATHY_PREFS_SOUNDS_INCOMING_MESSAGE } ,
-       { EMPATHY_SOUND_MESSAGE_OUTGOING, "message-sent-instant",
-         N_("Sent an instant message"), EMPATHY_PREFS_SOUNDS_OUTGOING_MESSAGE } ,
-       { EMPATHY_SOUND_CONVERSATION_NEW, "message-new-instant",
-         N_("Incoming chat request"), EMPATHY_PREFS_SOUNDS_NEW_CONVERSATION },
-       { EMPATHY_SOUND_CONTACT_CONNECTED, "service-login",
-         N_("Contact connected"), EMPATHY_PREFS_SOUNDS_CONTACT_LOGIN },
-       { EMPATHY_SOUND_CONTACT_DISCONNECTED, "service-logout",
-         N_("Contact disconnected"), EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT },
-       { EMPATHY_SOUND_ACCOUNT_CONNECTED, "service-login",
-         N_("Connected to server"), EMPATHY_PREFS_SOUNDS_SERVICE_LOGIN },
-       { EMPATHY_SOUND_ACCOUNT_DISCONNECTED, "service-logout",
-         N_("Disconnected from server"), EMPATHY_PREFS_SOUNDS_SERVICE_LOGOUT },
-       { EMPATHY_SOUND_PHONE_INCOMING, "phone-incoming-call",
-         N_("Incoming voice call"), NULL },
-       { EMPATHY_SOUND_PHONE_OUTGOING, "phone-outgoing-calling",
-         N_("Outgoing voice call"), NULL },
-       { EMPATHY_SOUND_PHONE_HANGUP, "phone-hangup",
-         N_("Voice call ended"), NULL },
-};
-
-
-static gboolean
-empathy_sound_pref_is_enabled (const char *key)
-{
-       EmpathyConf *conf;
-       gboolean res;
-
-       conf = empathy_conf_get ();
-       res = FALSE;
-
-       empathy_conf_get_bool (conf, EMPATHY_PREFS_SOUNDS_ENABLED, &res);
-
-       if (!res) {
-               return FALSE;
-       }
-
-       if (!empathy_check_available_state ()) {
-               empathy_conf_get_bool (conf, EMPATHY_PREFS_SOUNDS_DISABLED_AWAY,
-                                      &res);
-               if (res) {
-                       return FALSE;
-               }
-       }
-
-       empathy_conf_get_bool (conf, key, &res);
-
-       return res;
-}
-
-void
-empathy_sound_stop (EmpathySound sound_id)
-{
-       EmpathySoundEntry *entry;
-
-       g_return_if_fail (sound_id < LAST_EMPATHY_SOUND);
-
-       entry = &(sound_entries[sound_id]);
-       g_return_if_fail (entry->sound_id == sound_id);
-
-       ca_context_cancel (ca_gtk_context_get (), entry->sound_id);
-}
-
-
-gboolean
-empathy_sound_play_full (GtkWidget *widget, EmpathySound sound_id,
-       ca_finish_callback_t callback, gpointer user_data)
-{
-       EmpathySoundEntry *entry;
-       gboolean should_play = TRUE;
-       ca_proplist *p = NULL;
-       ca_context *c;
-
-       g_return_val_if_fail (sound_id < LAST_EMPATHY_SOUND, FALSE);
-
-       entry = &(sound_entries[sound_id]);
-       g_return_val_if_fail (entry->sound_id == sound_id, FALSE);
-
-       if (entry->gconf_key != NULL) {
-               should_play = empathy_sound_pref_is_enabled (entry->gconf_key);
-       }
-
-       if (!should_play)
-               return FALSE;
-
-       c = ca_gtk_context_get ();
-       ca_context_cancel (c, entry->sound_id);
-
-       DEBUG ("Play sound \"%s\" (%s)",
-              entry->event_ca_id,
-              entry->event_ca_description);
-
-       if (ca_proplist_create (&p) < 0)
-               goto failed;
-
-       if (ca_proplist_sets (p, CA_PROP_EVENT_ID, entry->event_ca_id) < 0)
-               goto failed;
-
-       if (ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION,
-                       gettext (entry->event_ca_id)) < 0)
-               goto failed;
-
-       if (ca_gtk_proplist_set_for_widget (p, widget) < 0)
-               goto failed;
-
-       ca_context_play_full (ca_gtk_context_get (), entry->sound_id,
-               p, callback, user_data);
-
-       ca_proplist_destroy (p);
-
-       return TRUE;
-
-failed:
-       if (p != NULL)
-               ca_proplist_destroy (p);
-
-       return FALSE;
-}
-
-void
-empathy_sound_play (GtkWidget *widget, EmpathySound sound_id)
-{
-       empathy_sound_play_full (widget, sound_id, NULL, NULL);
-}
-
+}
\ No newline at end of file
index 60d48f3c45ac5681586c073ed72cbec51e5db5ca..10f889b0cff66ee1fee600007c7de48272534ea4 100644 (file)
 
 #include <gtk/gtk.h>
 
-#include <canberra-gtk.h>
-
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-profile.h>
 
 #include <libempathy/empathy-contact.h>
+#include <libempathy/empathy-account.h>
 #include <libempathy/empathy-ft-handler.h>
 
 #include "empathy-chat-view.h"
 
 G_BEGIN_DECLS
 
-/* NOTE: Keep this sync with sound_entries in empathy-ui-utils.c */
-typedef enum {
-       EMPATHY_SOUND_MESSAGE_INCOMING = 0,
-       EMPATHY_SOUND_MESSAGE_OUTGOING,
-       EMPATHY_SOUND_CONVERSATION_NEW,
-       EMPATHY_SOUND_CONTACT_CONNECTED,
-       EMPATHY_SOUND_CONTACT_DISCONNECTED,
-       EMPATHY_SOUND_ACCOUNT_CONNECTED,
-       EMPATHY_SOUND_ACCOUNT_DISCONNECTED,
-       EMPATHY_SOUND_PHONE_INCOMING,
-       EMPATHY_SOUND_PHONE_OUTGOING,
-       EMPATHY_SOUND_PHONE_HANGUP,
-       LAST_EMPATHY_SOUND,
-} EmpathySound;
-
 void            empathy_gtk_init                        (void);
 GRegex *        empathy_uri_regex_dup_singleton         (void);
 
@@ -76,7 +59,7 @@ GtkWidget     *empathy_builder_unref_and_keep_widget    (GtkBuilder       *gui,
                                                         GtkWidget        *root);
 
 /* Pixbufs */
-const gchar * empathy_icon_name_from_account            (McAccount        *account);
+const gchar * empathy_icon_name_from_account            (EmpathyAccount   *account);
 const gchar * empathy_icon_name_for_presence            (TpConnectionPresenceType  presence);
 const gchar * empathy_icon_name_for_contact             (EmpathyContact   *contact);
 GdkPixbuf *   empathy_pixbuf_from_data                  (gchar            *data,
@@ -129,15 +112,6 @@ GtkWidget * empathy_link_button_new                     (const gchar      *url,
 void        empathy_send_file_with_file_chooser         (EmpathyContact   *contact);
 void        empathy_receive_file_with_file_chooser      (EmpathyFTHandler *handler);
 
-/* Sounds */
-void        empathy_sound_play                          (GtkWidget        *widget,
-                                                        EmpathySound      sound_id);
-gboolean    empathy_sound_play_full                     (GtkWidget *widget,
-                                                        EmpathySound sound_id,
-                                                        ca_finish_callback_t callback,
-                                                        gpointer user_data);
-void        empathy_sound_stop                          (EmpathySound sound_id);
-
 G_END_DECLS
 
 #endif /*  __EMPATHY_UI_UTILS_H__ */
index a07e863c1e5460d8a72b9234ce83348a326b27c3..27671543ac84491661b56f8a1b1218014255844a 100644 (file)
@@ -7,8 +7,10 @@ AM_CPPFLAGS =                                           \
        -I$(top_builddir)                               \
        -DDATADIR=\""$(datadir)"\"                      \
        -DLOCALEDIR=\""$(datadir)/locale"\"             \
+       -DG_LOG_DOMAIN=\"empathy\"                      \
        $(LIBEMPATHY_CFLAGS)                            \
        $(GEOCLUE_CFLAGS)                               \
+       $(NETWORK_MANAGER_CFLAGS) \
        $(WARN_CFLAGS)                                  \
        $(DISABLE_DEPRECATED)
 
@@ -22,6 +24,8 @@ BUILT_SOURCES =                                       \
 lib_LTLIBRARIES = libempathy.la
 
 libempathy_la_SOURCES =                                        \
+       empathy-account.c                       \
+       empathy-account-priv.h                  \
        empathy-account-manager.c                       \
        empathy-chatroom.c                              \
        empathy-chatroom-manager.c                      \
@@ -33,6 +37,7 @@ libempathy_la_SOURCES =                                       \
        empathy-contact-manager.c                       \
        empathy-contact-monitor.c                       \
        empathy-debug.c                                 \
+       empathy-debugger.c                              \
        empathy-dispatcher.c                            \
        empathy-dispatch-operation.c                    \
        empathy-ft-factory.c                            \
@@ -63,13 +68,15 @@ nodist_libempathy_la_SOURCES =\
 libempathy_la_LIBADD =         \
        $(top_builddir)/extensions/libemp-extensions.la \
        $(LIBEMPATHY_LIBS) \
-       $(GEOCLUE_LIBS)
+       $(GEOCLUE_LIBS) \
+       $(NETWORK_MANAGER_LIBS)
 
 libempathy_la_LDFLAGS =                \
        -version-info ${LIBEMPATHY_CURRENT}:${LIBEMPATHY_REVISION}:${LIBEMPATHY_AGE} \
        -export-symbols-regex ^empathy_
 
 libempathy_headers =                           \
+       empathy-account.h               \
        empathy-account-manager.h               \
        empathy-chatroom.h                      \
        empathy-chatroom-manager.h              \
@@ -81,6 +88,7 @@ libempathy_headers =                          \
        empathy-contact-manager.h               \
        empathy-contact-monitor.h               \
        empathy-debug.h                         \
+       empathy-debugger.h                      \
        empathy-dispatcher.h                    \
        empathy-dispatch-operation.h            \
        empathy-ft-factory.h                    \
index dd0a72f5900dc8d9fb3fe457682533e1ae1ace93..fd8a21b1d5c95c9353e0c4bed622c0948ca6ed9f 100644 (file)
@@ -16,6 +16,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  *
  * Authors: Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
+ *          Sjoerd Simons <sjoerd.simons@collabora.co.uk>
  */
 
 #include "config.h"
@@ -23,6 +24,7 @@
 #include <libmissioncontrol/mc-account-monitor.h>
 
 #include "empathy-account-manager.h"
+#include "empathy-account-priv.h"
 #include "empathy-marshal.h"
 #include "empathy-utils.h"
 
@@ -35,22 +37,13 @@ typedef struct {
   McAccountMonitor *monitor;
   MissionControl   *mc;
 
-  GHashTable       *accounts; /* McAccount -> AccountData */
-  GHashTable       *connections; /* TpConnection -> McAccount */
+  /* (owned) unique name -> (reffed) EmpathyAccount */
+  GHashTable       *accounts;
   int               connected;
   int               connecting;
   gboolean          dispose_run;
 } EmpathyAccountManagerPriv;
 
-typedef struct {
-  TpConnection *connection;
-  TpConnectionPresenceType presence;
-  TpConnectionStatus status;
-  gboolean is_enabled;
-
-  guint source_id;
-} AccountData;
-
 enum {
   ACCOUNT_CREATED,
   ACCOUNT_DELETED,
@@ -68,122 +61,154 @@ static EmpathyAccountManager *manager_singleton = NULL;
 
 G_DEFINE_TYPE (EmpathyAccountManager, empathy_account_manager, G_TYPE_OBJECT);
 
-static AccountData *
-account_data_new (McPresence presence,
-                  TpConnectionStatus status,
-                  gboolean is_enabled)
+static TpConnectionPresenceType
+mc_presence_to_tp_presence (McPresence presence)
 {
-  AccountData *retval;
+  switch (presence)
+    {
+      case MC_PRESENCE_OFFLINE:
+        return TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
+      case MC_PRESENCE_AVAILABLE:
+        return TP_CONNECTION_PRESENCE_TYPE_AVAILABLE;
+      case MC_PRESENCE_AWAY:
+        return TP_CONNECTION_PRESENCE_TYPE_AWAY;
+      case MC_PRESENCE_EXTENDED_AWAY:
+        return TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY;
+      case MC_PRESENCE_HIDDEN:
+        return TP_CONNECTION_PRESENCE_TYPE_HIDDEN;
+      case MC_PRESENCE_DO_NOT_DISTURB:
+        return TP_CONNECTION_PRESENCE_TYPE_BUSY;
+      default:
+        return TP_CONNECTION_PRESENCE_TYPE_UNSET;
+    }
+}
 
-  retval = g_slice_new0 (AccountData);
-  retval->presence = presence;
-  retval->status = status;
-  retval->is_enabled = is_enabled;
-  retval->source_id = 0;
+static void
+emp_account_connection_cb (EmpathyAccount *account,
+  GParamSpec *spec,
+  gpointer manager)
+{
+  TpConnection *connection = empathy_account_get_connection (account);
 
-  return retval;
+  DEBUG ("Signalling connection %p of account %s",
+      connection, empathy_account_get_unique_name (account));
+
+  if (connection != NULL)
+    g_signal_emit (manager, signals[NEW_CONNECTION], 0, connection);
 }
 
-static AccountData *
-account_data_new_default (MissionControl *mc,
-                          McAccount *account)
+static void
+emp_account_status_changed_cb (EmpathyAccount *account,
+  TpConnectionStatus old,
+  TpConnectionStatus new,
+  TpConnectionStatusReason reason,
+  gpointer user_data)
 {
-  McPresence actual_p;
-  TpConnectionStatus actual_c;
-  GError *err = NULL;
+  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
+  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
 
-  actual_p = mission_control_get_presence_actual (mc, &err);
-  if (err != NULL)
+  switch (old)
     {
-      actual_p = MC_PRESENCE_UNSET;
-      g_clear_error (&err);
+      case TP_CONNECTION_STATUS_CONNECTING:
+        priv->connecting--;
+        break;
+      case TP_CONNECTION_STATUS_CONNECTED:
+        priv->connected--;
+        break;
+      default:
+        break;
     }
 
-  actual_c = mission_control_get_connection_status (mc, account, &err);
-
-  if (err != NULL)
+  switch (new)
     {
-      actual_c = TP_CONNECTION_STATUS_DISCONNECTED;
-      g_error_free (err);
+      case TP_CONNECTION_STATUS_CONNECTING:
+        priv->connecting++;
+        break;
+      case TP_CONNECTION_STATUS_CONNECTED:
+        priv->connected++;
+        break;
+      default:
+        break;
     }
 
-  return account_data_new (actual_p, actual_c, mc_account_is_enabled (account));
+  g_signal_emit (manager, signals[ACCOUNT_CONNECTION_CHANGED], 0,
+    account, reason, new, old);
 }
 
 static void
-account_data_free (AccountData *data)
+emp_account_presence_changed_cb (EmpathyAccount *account,
+  TpConnectionPresenceType old,
+  TpConnectionPresenceType new,
+  gpointer user_data)
 {
-  if (data->source_id > 0)
-    {
-      g_source_remove (data->source_id);
-      data->source_id = 0;
-    }
-  if (data->connection != NULL)
-    {
-      g_object_unref (data->connection);
-      data->connection = NULL;
-    }
-
-  g_slice_free (AccountData, data);
+  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
+  g_signal_emit (manager, signals[ACCOUNT_PRESENCE_CHANGED], 0,
+    account, new, old);
 }
 
-static void
-connection_invalidated_cb (TpProxy *connection,
-                           guint    domain,
-                           gint     code,
-                           gchar   *message,
-                           EmpathyAccountManager *manager)
+static EmpathyAccount *
+create_account (EmpathyAccountManager *manager,
+  const gchar *account_name,
+  McAccount *mc_account)
 {
   EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  McAccount *account;
-  AccountData *data;
+  EmpathyAccount *account;
+  TpConnectionStatus status;
+  TpConnectionPresenceType presence;
+  McPresence mc_presence;
+  TpConnection *connection;
+  GError *error = NULL;
 
-  DEBUG ("Message: %s", message);
+  if ((account = g_hash_table_lookup (priv->accounts, account_name)) != NULL)
+    return account;
 
-  account = g_hash_table_lookup (priv->connections, connection);
-  g_assert (account != NULL);
+  account = _empathy_account_new (mc_account);
+  g_hash_table_insert (priv->accounts, g_strdup (account_name),
+    account);
 
-  data = g_hash_table_lookup (priv->accounts, account);
-  g_assert (data != NULL);
+  _empathy_account_set_enabled (account,
+      mc_account_is_enabled (mc_account));
 
-  g_object_unref (data->connection);
-  data->connection = NULL;
+  g_signal_emit (manager, signals[ACCOUNT_CREATED], 0, account);
 
-  g_hash_table_remove (priv->connections, connection);
-}
+  g_signal_connect (account, "notify::connection",
+    G_CALLBACK (emp_account_connection_cb), manager);
 
-static void
-connection_ready_cb (TpConnection *connection,
-                     const GError *error,
-                     gpointer manager)
-{
-  /* Errors will be handled in invalidated callback */
-  if (error != NULL)
-    return;
+  connection = mission_control_get_tpconnection (priv->mc,
+    mc_account, NULL);
+  _empathy_account_set_connection (account, connection);
 
-  g_signal_emit (manager, signals[NEW_CONNECTION], 0, connection);
-}
+  status = mission_control_get_connection_status (priv->mc,
+     mc_account, &error);
 
-static void
-account_manager_update_connection (EmpathyAccountManager *manager,
-                                   AccountData *data,
-                                   McAccount *account)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  if (data->connection)
-    return;
+  if (error != NULL)
+    {
+      status = TP_CONNECTION_STATUS_DISCONNECTED;
+      g_clear_error (&error);
+    }
 
-  data->connection = mission_control_get_tpconnection (priv->mc, account, NULL);
-  if (data->connection != NULL)
+  mc_presence = mission_control_get_presence_actual (priv->mc, &error);
+  if (error != NULL)
+    {
+      presence = TP_CONNECTION_PRESENCE_TYPE_UNSET;
+      g_clear_error (&error);
+    }
+  else
     {
-      g_signal_connect (data->connection, "invalidated",
-          G_CALLBACK (connection_invalidated_cb), manager);
-      g_hash_table_insert (priv->connections, g_object_ref (data->connection),
-          g_object_ref (account));
-      tp_connection_call_when_ready (data->connection, connection_ready_cb,
-          manager);
+      presence = mc_presence_to_tp_presence (mc_presence);
     }
+
+  g_signal_connect (account, "status-changed",
+    G_CALLBACK (emp_account_status_changed_cb), manager);
+
+  g_signal_connect (account, "presence-changed",
+    G_CALLBACK (emp_account_presence_changed_cb), manager);
+
+  _empathy_account_set_status (account, status,
+    TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED,
+    presence);
+
+  return account;
 }
 
 static void
@@ -191,32 +216,10 @@ account_created_cb (McAccountMonitor *mon,
                     gchar *account_name,
                     EmpathyAccountManager *manager)
 {
-  McAccount *account;
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  TpConnectionStatus initial_status;
+  McAccount *mc_account = mc_account_lookup (account_name);
 
-  account = mc_account_lookup (account_name);
-
-  if (account)
-    {
-      AccountData *data;
-
-      data = account_data_new_default (priv->mc, account);
-      g_hash_table_insert (priv->accounts, g_object_ref (account), data);
-
-      initial_status = mission_control_get_connection_status (priv->mc,
-                                                             account, NULL);
-
-      if (initial_status == TP_CONNECTION_STATUS_CONNECTED)
-       priv->connected++;
-      else if (initial_status == TP_CONNECTION_STATUS_CONNECTING)
-       priv->connecting++;
-
-      account_manager_update_connection (manager, data, account);
-
-      g_signal_emit (manager, signals[ACCOUNT_CREATED], 0, account);
-      g_object_unref (account);
-    }
+  if (mc_account != NULL)
+    create_account (manager, account_name, mc_account);
 }
 
 static void
@@ -224,16 +227,15 @@ account_deleted_cb (McAccountMonitor *mon,
                     gchar *account_name,
                     EmpathyAccountManager *manager)
 {
-  McAccount *account;
   EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
+  EmpathyAccount *account;
 
-  account = mc_account_lookup (account_name);
+  account = g_hash_table_lookup (priv->accounts, account_name);
 
   if (account)
     {
-      g_hash_table_remove (priv->accounts, account);
       g_signal_emit (manager, signals[ACCOUNT_DELETED], 0, account);
-      g_object_unref (account);
+      g_hash_table_remove (priv->accounts, account_name);
     }
 }
 
@@ -242,15 +244,13 @@ account_changed_cb (McAccountMonitor *mon,
                     gchar *account_name,
                     EmpathyAccountManager *manager)
 {
-  McAccount *account;
+  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
+  EmpathyAccount *account;
 
-  account = mc_account_lookup (account_name);
+  account = g_hash_table_lookup (priv->accounts, account_name);
 
-  if (account)
-    {
-      g_signal_emit (manager, signals[ACCOUNT_CHANGED], 0, account);
-      g_object_unref (account);
-    }
+  if (account != NULL)
+    g_signal_emit (manager, signals[ACCOUNT_CHANGED], 0, account);
 }
 
 static void
@@ -258,20 +258,15 @@ account_disabled_cb (McAccountMonitor *mon,
                      gchar *account_name,
                      EmpathyAccountManager *manager)
 {
-  McAccount *account;
   EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  AccountData *data;
+  EmpathyAccount *account;
 
-  account = mc_account_lookup (account_name);
+  account = g_hash_table_lookup (priv->accounts, account_name);
 
   if (account)
     {
-      data = g_hash_table_lookup (priv->accounts, account);
-      g_assert (data);
-      data->is_enabled = FALSE;
-
+      _empathy_account_set_enabled (account, FALSE);
       g_signal_emit (manager, signals[ACCOUNT_DISABLED], 0, account);
-      g_object_unref (account);
     }
 }
 
@@ -280,135 +275,60 @@ account_enabled_cb (McAccountMonitor *mon,
                     gchar *account_name,
                     EmpathyAccountManager *manager)
 {
-  McAccount *account;
   EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  AccountData *data;
+  EmpathyAccount *account;
 
-  account = mc_account_lookup (account_name);
+  account = g_hash_table_lookup (priv->accounts, account_name);
 
   if (account)
     {
-      data = g_hash_table_lookup (priv->accounts, account);
-      g_assert (data);
-      data->is_enabled = TRUE;
-
+      _empathy_account_set_enabled (account, TRUE);
       g_signal_emit (manager, signals[ACCOUNT_ENABLED], 0, account);
-      g_object_unref (account);
-    }
-}
-
-static void
-update_connection_numbers (EmpathyAccountManager *manager,
-                           TpConnectionStatus status,
-                           TpConnectionStatus old_s)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  if (status == TP_CONNECTION_STATUS_CONNECTED)
-    {
-      priv->connected++;
-      if (old_s == TP_CONNECTION_STATUS_CONNECTING)
-        priv->connecting--;
-    }
-
-  if (status == TP_CONNECTION_STATUS_CONNECTING)
-    {
-      priv->connecting++;
-      if (old_s == TP_CONNECTION_STATUS_CONNECTED)
-        priv->connected--;
-    }
-
-  if (status == TP_CONNECTION_STATUS_DISCONNECTED)
-    {
-      if (old_s == TP_CONNECTION_STATUS_CONNECTED)
-        priv->connected--;
-
-      if (old_s == TP_CONNECTION_STATUS_CONNECTING)
-        priv->connecting--;
     }
 }
 
-static gboolean
-remove_data_timeout (gpointer _data)
-{
-  AccountData *data = _data;
-
-  data->source_id = 0;
-
-  return FALSE;
-}
-
 typedef struct {
   TpConnectionStatus status;
-  McPresence presence;
+  TpConnectionPresenceType presence;
   TpConnectionStatusReason reason;
   gchar *unique_name;
   EmpathyAccountManager *manager;
+  McAccount *mc_account;
 } ChangedSignalData;
 
 static gboolean
 account_status_changed_idle_cb (ChangedSignalData *signal_data)
 {
-  McAccount *account;
-  AccountData *data;
-  McPresence presence, old_p;
-  TpConnectionStatus status, old_s;
-  gboolean emit_presence = FALSE, emit_connection = FALSE;
+  EmpathyAccount *account;
   EmpathyAccountManager *manager = signal_data->manager;
   EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
 
-  presence = signal_data->presence;
-  status = signal_data->status;
-  account = mc_account_lookup (signal_data->unique_name);
+  account = g_hash_table_lookup (priv->accounts,
+    signal_data->unique_name);
 
   if (account)
     {
-      data = g_hash_table_lookup (priv->accounts, account);
-      g_assert (data);
-
-      old_p = data->presence;
-      old_s = data->status;
-
-      if (old_p != presence)
+      if (empathy_account_get_connection (account) == NULL)
         {
-          data->presence = presence;
-          emit_presence = TRUE;
-        }
+          TpConnection *connection;
 
-      if (old_s != status)
-        {
-          data->status = status;
-          update_connection_numbers (manager, status, old_s);
+          connection = mission_control_get_tpconnection (priv->mc,
+             signal_data->mc_account, NULL);
 
-          if (status == TP_CONNECTION_STATUS_CONNECTED)
+          if (connection != NULL)
             {
-                if (data->source_id > 0)
-                  {
-                    g_source_remove (data->source_id);
-                    data->source_id = 0;
-                  }
-
-                data->source_id = g_timeout_add_seconds (10,
-                                                         remove_data_timeout,
-                                                         data);
+              _empathy_account_set_connection (account, connection);
+              g_object_unref (connection);
             }
-          emit_connection = TRUE;
         }
 
-      account_manager_update_connection (manager, data, account);
-
-      if (emit_presence)
-        g_signal_emit (manager, signals[ACCOUNT_PRESENCE_CHANGED], 0,
-                       account, presence, old_p);
-
-      if (emit_connection)
-        g_signal_emit (manager, signals[ACCOUNT_CONNECTION_CHANGED], 0,
-                       account, signal_data->reason, status, old_s);
-
-      g_object_unref (account);
+      _empathy_account_set_status (account, signal_data->status,
+        signal_data->reason,
+        signal_data->presence);
     }
 
   g_object_unref (signal_data->manager);
+  g_object_unref (signal_data->mc_account);
   g_free (signal_data->unique_name);
   g_slice_free (ChangedSignalData, signal_data);
 
@@ -424,38 +344,18 @@ account_status_changed_cb (MissionControl *mc,
                            EmpathyAccountManager *manager)
 {
   ChangedSignalData *data;
-  TpConnectionPresenceType tp_presence;
 
-  switch (presence)
-    {
-      case MC_PRESENCE_OFFLINE:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
-        break;
-      case MC_PRESENCE_AVAILABLE:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_AVAILABLE;
-        break;
-      case MC_PRESENCE_AWAY:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_AWAY;
-        break;
-      case MC_PRESENCE_EXTENDED_AWAY:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY;
-        break;
-      case MC_PRESENCE_HIDDEN:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_HIDDEN;
-        break;
-      case MC_PRESENCE_DO_NOT_DISTURB:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_BUSY;
-        break;
-      default:
-        tp_presence = TP_CONNECTION_PRESENCE_TYPE_UNSET;
-    }
+  DEBUG ("Status of account %s became "
+    "status: %d presence: %d reason: %d", unique_name, status,
+    presence, reason);
 
   data = g_slice_new0 (ChangedSignalData);
   data->status = status;
-  data->presence = tp_presence;
+  data->presence = mc_presence_to_tp_presence (presence);
   data->reason = reason;
   data->unique_name = g_strdup (unique_name);
   data->manager = g_object_ref (manager);
+  data->mc_account = mc_account_lookup (unique_name);
 
   g_idle_add ((GSourceFunc) account_status_changed_idle_cb, data);
 }
@@ -467,35 +367,33 @@ empathy_account_manager_init (EmpathyAccountManager *manager)
   GList *mc_accounts, *l;
 
   priv = G_TYPE_INSTANCE_GET_PRIVATE (manager,
-                                     EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerPriv);
+      EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerPriv);
+
   manager->priv = priv;
   priv->monitor = mc_account_monitor_new ();
   priv->mc = empathy_mission_control_dup_singleton ();
   priv->connected = priv->connecting = 0;
   priv->dispose_run = FALSE;
 
-  priv->accounts = g_hash_table_new_full (empathy_account_hash,
-                                          empathy_account_equal,
-                                          g_object_unref,
-                                          (GDestroyNotify) account_data_free);
-  priv->connections = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-                                             g_object_unref, g_object_unref);
+  priv->accounts = g_hash_table_new_full (g_str_hash, g_str_equal,
+      g_free, (GDestroyNotify) g_object_unref);
 
   mc_accounts = mc_accounts_list ();
 
   for (l = mc_accounts; l; l = l->next)
-    account_created_cb (priv->monitor, (char *) mc_account_get_unique_name (l->data), manager);
+    account_created_cb (priv->monitor,
+      (char *) mc_account_get_unique_name (l->data), manager);
 
   g_signal_connect (priv->monitor, "account-created",
-                    G_CALLBACK (account_created_cb), manager);
+      G_CALLBACK (account_created_cb), manager);
   g_signal_connect (priv->monitor, "account-deleted",
-                    G_CALLBACK (account_deleted_cb), manager);
+      G_CALLBACK (account_deleted_cb), manager);
   g_signal_connect (priv->monitor, "account-disabled",
-                    G_CALLBACK (account_disabled_cb), manager);
+      G_CALLBACK (account_disabled_cb), manager);
   g_signal_connect (priv->monitor, "account-enabled",
-                    G_CALLBACK (account_enabled_cb), manager);
+      G_CALLBACK (account_enabled_cb), manager);
   g_signal_connect (priv->monitor, "account-changed",
-                    G_CALLBACK (account_changed_cb), manager);
+      G_CALLBACK (account_changed_cb), manager);
 
   dbus_g_proxy_connect_signal (DBUS_G_PROXY (priv->mc), "AccountStatusChanged",
                                G_CALLBACK (account_status_changed_cb),
@@ -510,8 +408,7 @@ do_finalize (GObject *obj)
   EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (obj);
   EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
 
-  g_hash_table_unref (priv->accounts);
-  g_hash_table_unref (priv->connections);
+  g_hash_table_destroy (priv->accounts);
 
   G_OBJECT_CLASS (empathy_account_manager_parent_class)->finalize (obj);
 }
@@ -596,7 +493,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   g_cclosure_marshal_VOID__OBJECT,
                   G_TYPE_NONE,
-                  1, MC_TYPE_ACCOUNT);
+                  1, EMPATHY_TYPE_ACCOUNT);
 
   signals[ACCOUNT_DELETED] =
     g_signal_new ("account-deleted",
@@ -606,7 +503,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   g_cclosure_marshal_VOID__OBJECT,
                   G_TYPE_NONE,
-                  1, MC_TYPE_ACCOUNT);
+                  1, EMPATHY_TYPE_ACCOUNT);
 
   signals[ACCOUNT_ENABLED] =
     g_signal_new ("account-enabled",
@@ -616,7 +513,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   g_cclosure_marshal_VOID__OBJECT,
                   G_TYPE_NONE,
-                  1, MC_TYPE_ACCOUNT);
+                  1, EMPATHY_TYPE_ACCOUNT);
 
   signals[ACCOUNT_DISABLED] =
     g_signal_new ("account-disabled",
@@ -626,7 +523,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   g_cclosure_marshal_VOID__OBJECT,
                   G_TYPE_NONE,
-                  1, MC_TYPE_ACCOUNT);
+                  1, EMPATHY_TYPE_ACCOUNT);
 
   signals[ACCOUNT_CHANGED] =
     g_signal_new ("account-changed",
@@ -636,7 +533,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   g_cclosure_marshal_VOID__OBJECT,
                   G_TYPE_NONE,
-                  1, MC_TYPE_ACCOUNT);
+                  1, EMPATHY_TYPE_ACCOUNT);
 
   signals[ACCOUNT_CONNECTION_CHANGED] =
     g_signal_new ("account-connection-changed",
@@ -646,7 +543,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   _empathy_marshal_VOID__OBJECT_INT_UINT_UINT,
                   G_TYPE_NONE,
-                  4, MC_TYPE_ACCOUNT,
+                  4, EMPATHY_TYPE_ACCOUNT,
                   G_TYPE_INT,   /* reason */
                   G_TYPE_UINT,  /* actual connection */
                   G_TYPE_UINT); /* previous connection */
@@ -659,7 +556,7 @@ empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
                   NULL, NULL,
                   _empathy_marshal_VOID__OBJECT_INT_INT,
                   G_TYPE_NONE,
-                  3, MC_TYPE_ACCOUNT,
+                  3, EMPATHY_TYPE_ACCOUNT,
                   G_TYPE_INT,  /* actual presence */
                   G_TYPE_INT); /* previous presence */
 
@@ -684,6 +581,16 @@ empathy_account_manager_dup_singleton (void)
   return g_object_new (EMPATHY_TYPE_ACCOUNT_MANAGER, NULL);
 }
 
+EmpathyAccount *
+empathy_account_manager_create (EmpathyAccountManager *manager,
+  McProfile *profile)
+{
+  McAccount *mc_account = mc_account_create (profile);
+  return g_object_ref (create_account (manager,
+      mc_account_get_unique_name (mc_account),
+      mc_account));
+}
+
 int
 empathy_account_manager_get_connected_accounts (EmpathyAccountManager *manager)
 {
@@ -708,23 +615,6 @@ empathy_account_manager_get_connecting_accounts (EmpathyAccountManager *manager)
   return priv->connecting;
 }
 
-gboolean
-empathy_account_manager_is_account_just_connected (EmpathyAccountManager *manager,
-                                                   McAccount *account)
-{
-  EmpathyAccountManagerPriv *priv;
-  AccountData *data;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), FALSE);
-
-  priv = GET_PRIV (manager);
-  data = g_hash_table_lookup (priv->accounts, account);
-
-  g_assert (data);
-
-  return (data->source_id > 0);
-}
-
 /**
  * empathy_account_manager_get_count:
  * @manager: a #EmpathyAccountManager
@@ -745,62 +635,59 @@ empathy_account_manager_get_count (EmpathyAccountManager *manager)
   return g_hash_table_size (priv->accounts);
 }
 
-McAccount *
+EmpathyAccount *
 empathy_account_manager_get_account (EmpathyAccountManager *manager,
                                      TpConnection          *connection)
 {
   EmpathyAccountManagerPriv *priv;
+  GHashTableIter iter;
+  gpointer value;
 
   g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), 0);
 
   priv = GET_PRIV (manager);
 
-  return g_hash_table_lookup (priv->connections, connection);
+  g_hash_table_iter_init (&iter, priv->accounts);
+  while (g_hash_table_iter_next (&iter, NULL, &value))
+    {
+      EmpathyAccount *account = EMPATHY_ACCOUNT (value);
+
+      if (connection == empathy_account_get_connection (account))
+          return account;
+    }
+
+  return NULL;
 }
 
-GList *
-empathy_account_manager_dup_accounts (EmpathyAccountManager *manager)
+EmpathyAccount *
+empathy_account_manager_lookup (EmpathyAccountManager *manager,
+    const gchar *unique_name)
 {
-  EmpathyAccountManagerPriv *priv;
-  GList *ret;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), NULL);
+  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
+  EmpathyAccount *account;
 
-  priv = GET_PRIV (manager);
+  account = g_hash_table_lookup (priv->accounts, unique_name);
 
-  ret = g_hash_table_get_keys (priv->accounts);
-  g_list_foreach (ret, (GFunc) g_object_ref, NULL);
+  if (account != NULL)
+    g_object_ref (account);
 
-  return ret;
+  return account;
 }
 
-/**
- * empathy_account_manager_get_connection:
- * @manager: a #EmpathyAccountManager
- * @account: a #McAccount
- *
- * Get the connection of the accounts, or NULL if account is offline or the
- * connection is not yet ready. This function does not return a new ref.
- *
- * Returns: the connection of the accounts.
- **/
-TpConnection *
-empathy_account_manager_get_connection (EmpathyAccountManager *manager,
-                                        McAccount *account)
+GList *
+empathy_account_manager_dup_accounts (EmpathyAccountManager *manager)
 {
   EmpathyAccountManagerPriv *priv;
-  AccountData *data;
+  GList *ret;
 
   g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
 
   priv = GET_PRIV (manager);
 
-  data = g_hash_table_lookup (priv->accounts, account);
-  if (data && data->connection && tp_connection_is_ready (data->connection))
-    return data->connection;
+  ret = g_hash_table_get_values (priv->accounts);
+  g_list_foreach (ret, (GFunc) g_object_ref, NULL);
 
-  return NULL;
+  return ret;
 }
 
 /**
@@ -817,18 +704,30 @@ empathy_account_manager_dup_connections (EmpathyAccountManager *manager)
 {
   EmpathyAccountManagerPriv *priv;
   GHashTableIter iter;
-  gpointer connection;
+  gpointer value;
   GList *ret = NULL;
 
   g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), NULL);
 
   priv = GET_PRIV (manager);
 
-  g_hash_table_iter_init (&iter, priv->connections);
-  while (g_hash_table_iter_next (&iter, &connection, NULL))
-    if (connection != NULL && tp_connection_is_ready (connection))
-      ret = g_list_prepend (ret, g_object_ref (connection));
+  g_hash_table_iter_init (&iter, priv->accounts);
+  while (g_hash_table_iter_next (&iter, NULL, &value))
+    {
+      EmpathyAccount *account = EMPATHY_ACCOUNT (value);
+      TpConnection *connection;
+
+      connection = empathy_account_get_connection (account);
+      if (connection != NULL)
+        ret = g_list_prepend (ret, g_object_ref (connection));
+    }
 
   return ret;
 }
 
+void
+empathy_account_manager_remove (EmpathyAccountManager *manager,
+    EmpathyAccount *account)
+{
+  mc_account_delete (_empathy_account_get_mc_account (account));
+}
index 11ca6aca26e61f5243944e2bd1fd2c2af19dc91c..b04571ff81c8a3e5f4574b3d94f99f9e1f198eaf 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <glib-object.h>
 
-#include <libmissioncontrol/mc-account.h>
+#include "empathy-account.h"
 
 G_BEGIN_DECLS
 
@@ -52,25 +52,28 @@ GType empathy_account_manager_get_type (void);
 /* public methods */
 
 EmpathyAccountManager * empathy_account_manager_dup_singleton (void);
+EmpathyAccount *        empathy_account_manager_create
+                                (EmpathyAccountManager *manager,
+                                 McProfile *profile);
 int                     empathy_account_manager_get_connected_accounts
                                 (EmpathyAccountManager *manager);
 int                     empathy_account_manager_get_connecting_accounts
                                 (EmpathyAccountManager *manager);
-gboolean                empathy_account_manager_is_account_just_connected
-                                (EmpathyAccountManager *manager,
-                                 McAccount             *account);
 int                     empathy_account_manager_get_count
                                 (EmpathyAccountManager *manager);
-McAccount *             empathy_account_manager_get_account
+EmpathyAccount *        empathy_account_manager_get_account
                                 (EmpathyAccountManager *manager,
                                  TpConnection          *connection);
+EmpathyAccount *        empathy_account_manager_lookup
+                                (EmpathyAccountManager *manager,
+                                 const gchar *unique_name);
 GList *                 empathy_account_manager_dup_accounts
                                 (EmpathyAccountManager *manager);
-TpConnection *          empathy_account_manager_get_connection
-                                (EmpathyAccountManager *manager,
-                                 McAccount             *account);
 GList *                 empathy_account_manager_dup_connections
                                 (EmpathyAccountManager *manager);
+void                    empathy_account_manager_remove (
+                                 EmpathyAccountManager *manager,
+                                 EmpathyAccount *account);
 
 G_END_DECLS
 
diff --git a/libempathy/empathy-account-priv.h b/libempathy/empathy-account-priv.h
new file mode 100644 (file)
index 0000000..8b656b4
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * empathy-account-priv.h - Private Header for EmpathyAccount
+ * Copyright (C) 2009 Collabora Ltd.
+ * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __EMPATHY_ACCOUNT_PRIV_H__
+#define __EMPATHY_ACCOUNT_PRIV_H__
+
+#include <glib.h>
+
+#include <libmissioncontrol/mc-account.h>
+#include "empathy-account.h"
+
+G_BEGIN_DECLS
+
+EmpathyAccount *_empathy_account_new (McAccount *account);
+void _empathy_account_set_status (EmpathyAccount *account,
+    TpConnectionStatus status,
+    TpConnectionStatusReason reason,
+    TpConnectionPresenceType presence);
+void _empathy_account_set_connection (EmpathyAccount *account,
+    TpConnection *connection);
+void _empathy_account_set_enabled (EmpathyAccount *account,
+    gboolean enabled);
+McAccount *_empathy_account_get_mc_account (EmpathyAccount *account);
+
+G_END_DECLS
+
+#endif /* #ifndef __EMPATHY_ACCOUNT_PRIV_H__*/
diff --git a/libempathy/empathy-account.c b/libempathy/empathy-account.c
new file mode 100644 (file)
index 0000000..e0a8e75
--- /dev/null
@@ -0,0 +1,575 @@
+/*
+ * empathy-account.c - Source for EmpathyAccount
+ * Copyright (C) 2009 Collabora Ltd.
+ * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <telepathy-glib/enums.h>
+
+#define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT
+#include <libempathy/empathy-debug.h>
+
+#include "empathy-account.h"
+#include "empathy-account-priv.h"
+#include "empathy-utils.h"
+#include "empathy-marshal.h"
+
+/* signals */
+enum {
+  STATUS_CHANGED,
+  PRESENCE_CHANGED,
+  LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL];
+
+/* properties */
+enum {
+  PROP_ENABLED = 1,
+  PROP_PRESENCE,
+  PROP_CONNECTION_STATUS,
+  PROP_CONNECTION_STATUS_REASON,
+  PROP_CONNECTION,
+  PROP_UNIQUE_NAME,
+  PROP_DISPLAY_NAME
+};
+
+G_DEFINE_TYPE(EmpathyAccount, empathy_account, G_TYPE_OBJECT)
+
+/* private structure */
+typedef struct _EmpathyAccountPriv EmpathyAccountPriv;
+
+struct _EmpathyAccountPriv
+{
+  gboolean dispose_has_run;
+
+  TpConnection *connection;
+  guint connection_invalidated_id;
+
+  TpConnectionStatus status;
+  TpConnectionStatusReason reason;
+  TpConnectionPresenceType presence;
+
+  gboolean enabled;
+  /* Timestamp when the connection got connected in seconds since the epoch */
+  glong connect_time;
+
+  McAccount *mc_account;
+};
+
+#define GET_PRIV(obj)  EMPATHY_GET_PRIV (obj, EmpathyAccount)
+
+static void
+empathy_account_init (EmpathyAccount *obj)
+{
+  EmpathyAccountPriv *priv;
+
+  priv =  G_TYPE_INSTANCE_GET_PRIVATE (obj,
+    EMPATHY_TYPE_ACCOUNT, EmpathyAccountPriv);
+
+  obj->priv = priv;
+
+  priv->status = TP_CONNECTION_STATUS_DISCONNECTED;
+}
+
+static void
+empathy_account_get_property (GObject *object,
+    guint prop_id,
+    GValue *value,
+    GParamSpec *pspec)
+{
+  EmpathyAccount *account = EMPATHY_ACCOUNT (object);
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  switch (prop_id)
+    {
+      case PROP_ENABLED:
+        g_value_set_boolean (value, priv->enabled);
+        break;
+      case PROP_PRESENCE:
+        g_value_set_uint (value, priv->presence);
+        break;
+      case PROP_CONNECTION_STATUS:
+        g_value_set_uint (value, priv->status);
+        break;
+      case PROP_CONNECTION_STATUS_REASON:
+        g_value_set_uint (value, priv->reason);
+        break;
+      case PROP_CONNECTION:
+        g_value_set_object (value,
+            empathy_account_get_connection (account));
+        break;
+      case PROP_UNIQUE_NAME:
+        g_value_set_string (value,
+            empathy_account_get_unique_name (account));
+        break;
+      case PROP_DISPLAY_NAME:
+        g_value_set_string (value,
+            empathy_account_get_display_name (account));
+        break;
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+        break;
+    }
+}
+
+static void empathy_account_dispose (GObject *object);
+static void empathy_account_finalize (GObject *object);
+
+static void
+empathy_account_class_init (EmpathyAccountClass *empathy_account_class)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (empathy_account_class);
+
+  g_type_class_add_private (empathy_account_class,
+    sizeof (EmpathyAccountPriv));
+
+  object_class->get_property = empathy_account_get_property;
+  object_class->dispose = empathy_account_dispose;
+  object_class->finalize = empathy_account_finalize;
+
+  g_object_class_install_property (object_class, PROP_ENABLED,
+    g_param_spec_boolean ("enabled",
+      "Enabled",
+      "Whether this account is enabled or not",
+      FALSE,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  g_object_class_install_property (object_class, PROP_PRESENCE,
+    g_param_spec_uint ("presence",
+      "Presence",
+      "The account connections presence type",
+      0,
+      NUM_TP_CONNECTION_PRESENCE_TYPES,
+      TP_CONNECTION_PRESENCE_TYPE_UNSET,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  g_object_class_install_property (object_class, PROP_CONNECTION_STATUS,
+    g_param_spec_uint ("status",
+      "ConnectionStatus",
+      "The accounts connections status type",
+      0,
+      NUM_TP_CONNECTION_STATUSES,
+      TP_CONNECTION_STATUS_DISCONNECTED,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  g_object_class_install_property (object_class, PROP_CONNECTION_STATUS_REASON,
+    g_param_spec_uint ("status-reason",
+      "ConnectionStatusReason",
+      "The account connections status reason",
+      0,
+      NUM_TP_CONNECTION_STATUS_REASONS,
+      TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  g_object_class_install_property (object_class, PROP_CONNECTION,
+    g_param_spec_object ("connection",
+      "Connection",
+      "The accounts connection",
+      TP_TYPE_CONNECTION,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  g_object_class_install_property (object_class, PROP_UNIQUE_NAME,
+    g_param_spec_string ("unique-name",
+      "UniqueName",
+      "The accounts unique name",
+      NULL,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  g_object_class_install_property (object_class, PROP_DISPLAY_NAME,
+    g_param_spec_string ("display-name",
+      "DisplayName",
+      "The accounts display name",
+      NULL,
+      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
+
+  signals[STATUS_CHANGED] = g_signal_new ("status-changed",
+    G_TYPE_FROM_CLASS (object_class),
+    G_SIGNAL_RUN_LAST,
+    0, NULL, NULL,
+    _empathy_marshal_VOID__UINT_UINT_UINT,
+    G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
+
+  signals[PRESENCE_CHANGED] = g_signal_new ("presence-changed",
+    G_TYPE_FROM_CLASS (object_class),
+    G_SIGNAL_RUN_LAST,
+    0, NULL, NULL,
+    _empathy_marshal_VOID__UINT_UINT,
+    G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+}
+
+void
+empathy_account_dispose (GObject *object)
+{
+  EmpathyAccount *self = EMPATHY_ACCOUNT (object);
+  EmpathyAccountPriv *priv = GET_PRIV (self);
+
+  if (priv->dispose_has_run)
+    return;
+
+  priv->dispose_has_run = TRUE;
+
+  if (priv->connection_invalidated_id != 0)
+    g_signal_handler_disconnect (priv->connection,
+        priv->connection_invalidated_id);
+  priv->connection_invalidated_id = 0;
+
+  if (priv->connection != NULL)
+    g_object_unref (priv->connection);
+  priv->connection = NULL;
+
+  /* release any references held by the object here */
+  if (G_OBJECT_CLASS (empathy_account_parent_class)->dispose != NULL)
+    G_OBJECT_CLASS (empathy_account_parent_class)->dispose (object);
+}
+
+void
+empathy_account_finalize (GObject *object)
+{
+  /* free any data held directly by the object here */
+  if (G_OBJECT_CLASS (empathy_account_parent_class)->finalize != NULL)
+    G_OBJECT_CLASS (empathy_account_parent_class)->finalize (object);
+}
+
+gboolean
+empathy_account_is_just_connected (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  GTimeVal val;
+
+  if (priv->status != TP_CONNECTION_STATUS_CONNECTED)
+    return FALSE;
+
+  g_get_current_time (&val);
+
+  return (val.tv_sec - priv->connect_time) < 10;
+}
+
+/**
+ * empathy_account_get_connection:
+ * @account: a #EmpathyAccount
+ *
+ * Get the connection of the account, or NULL if account is offline or the
+ * connection is not yet ready. This function does not return a new ref.
+ *
+ * Returns: the connection of the account.
+ **/
+TpConnection *
+empathy_account_get_connection (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  if (priv->connection != NULL &&
+      tp_connection_is_ready (priv->connection))
+    return priv->connection;
+
+  return NULL;
+}
+
+/**
+ * empathy_account_get_unique_name:
+ * @account: a #EmpathyAccount
+ *
+ * Returns: the unique name of the account.
+ **/
+const gchar *
+empathy_account_get_unique_name (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  return mc_account_get_unique_name (priv->mc_account);
+}
+
+/**
+ * empathy_account_get_display_name:
+ * @account: a #EmpathyAccount
+ *
+ * Returns: the display name of the account.
+ **/
+const gchar *
+empathy_account_get_display_name (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  return mc_account_get_display_name (priv->mc_account);
+}
+
+gboolean
+empathy_account_is_valid (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  return mc_account_is_complete (priv->mc_account);
+}
+
+void
+empathy_account_set_enabled (EmpathyAccount *account, gboolean enabled)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  mc_account_set_enabled (priv->mc_account, enabled);
+}
+
+gboolean
+empathy_account_is_enabled (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  return priv->enabled;
+}
+
+void
+empathy_account_unset_param (EmpathyAccount *account, const gchar *param)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  mc_account_unset_param (priv->mc_account, param);
+}
+
+gchar *
+empathy_account_get_param_string (EmpathyAccount *account, const gchar *param)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  gchar *value = NULL;
+
+  mc_account_get_param_string (priv->mc_account, param, &value);
+  return value;
+}
+
+gint
+empathy_account_get_param_int (EmpathyAccount *account, const gchar *param)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  int value;
+
+  mc_account_get_param_int (priv->mc_account, param, &value);
+  return value;
+}
+
+gboolean
+empathy_account_get_param_boolean (EmpathyAccount *account, const gchar *param)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  gboolean value;
+
+  mc_account_get_param_boolean (priv->mc_account, param, &value);
+  return value;
+}
+
+void
+empathy_account_set_param_string (EmpathyAccount *account,
+  const gchar *param,
+  const gchar *value)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  mc_account_set_param_string (priv->mc_account, param, value);
+}
+
+void
+empathy_account_set_param_int (EmpathyAccount *account,
+  const gchar *param,
+  gint value)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  mc_account_set_param_int (priv->mc_account, param, value);
+}
+
+void
+empathy_account_set_param_boolean (EmpathyAccount *account,
+  const gchar *param,
+  gboolean value)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  mc_account_set_param_boolean (priv->mc_account, param, value);
+}
+
+void
+empathy_account_set_display_name (EmpathyAccount *account,
+    const gchar *display_name)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  mc_account_set_display_name (priv->mc_account, display_name);
+}
+
+McProfile *
+empathy_account_get_profile (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  return mc_account_get_profile (priv->mc_account);
+}
+
+EmpathyAccount *
+_empathy_account_new (McAccount *mc_account)
+{
+  EmpathyAccount *account;
+  EmpathyAccountPriv *priv;
+
+  account = g_object_new (EMPATHY_TYPE_ACCOUNT, NULL);
+  priv = GET_PRIV (account);
+  priv->mc_account = mc_account;
+
+  return account;
+}
+
+void
+_empathy_account_set_status (EmpathyAccount *account,
+    TpConnectionStatus status,
+    TpConnectionStatusReason reason,
+    TpConnectionPresenceType presence)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  TpConnectionStatus old_s = priv->status;
+  TpConnectionPresenceType old_p = priv->presence;
+
+  priv->status = status;
+  priv->presence = presence;
+
+  if (priv->status != old_s)
+    {
+      if (priv->status == TP_CONNECTION_STATUS_CONNECTED)
+        {
+          GTimeVal val;
+          g_get_current_time (&val);
+
+          priv->connect_time = val.tv_sec;
+        }
+
+      priv->reason = reason;
+      g_signal_emit (account, signals[STATUS_CHANGED], 0,
+        old_s, priv->status, reason);
+
+      g_object_notify (G_OBJECT (account), "status");
+    }
+
+  if (priv->presence != old_p)
+    {
+      g_signal_emit (account, signals[PRESENCE_CHANGED], 0,
+        old_p, priv->presence);
+      g_object_notify (G_OBJECT (account), "presence");
+    }
+}
+
+static void
+empathy_account_connection_ready_cb (TpConnection *connection,
+    const GError *error,
+    gpointer user_data)
+{
+  EmpathyAccount *account = EMPATHY_ACCOUNT (user_data);
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  if (error != NULL)
+    {
+      DEBUG ("(%s) Connection failed to become ready: %s",
+        empathy_account_get_unique_name (account), error->message);
+      priv->connection = NULL;
+    }
+  else
+    {
+      DEBUG ("(%s) Connection ready",
+        empathy_account_get_unique_name (account));
+      g_object_notify (G_OBJECT (account), "connection");
+    }
+}
+
+static void
+_empathy_account_connection_invalidated_cb (TpProxy *self,
+  guint    domain,
+  gint     code,
+  gchar   *message,
+  gpointer user_data)
+{
+  EmpathyAccount *account = EMPATHY_ACCOUNT (user_data);
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  if (priv->connection == NULL)
+    return;
+
+  DEBUG ("(%s) Connection invalidated",
+    empathy_account_get_unique_name (account));
+
+  g_assert (priv->connection == TP_CONNECTION (self));
+
+  g_signal_handler_disconnect (priv->connection,
+    priv->connection_invalidated_id);
+  priv->connection_invalidated_id = 0;
+
+  g_object_unref (priv->connection);
+  priv->connection = NULL;
+
+  g_object_notify (G_OBJECT (account), "connection");
+}
+
+void
+_empathy_account_set_connection (EmpathyAccount *account,
+    TpConnection *connection)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  if (priv->connection == connection)
+    return;
+
+  /* Connection already set, don't set the new one */
+  if (connection != NULL && priv->connection != NULL)
+    return;
+
+  if (connection == NULL)
+    {
+      g_signal_handler_disconnect (priv->connection,
+        priv->connection_invalidated_id);
+      priv->connection_invalidated_id = 0;
+
+      g_object_unref (priv->connection);
+      priv->connection = NULL;
+      g_object_notify (G_OBJECT (account), "connection");
+    }
+  else
+    {
+      priv->connection = g_object_ref (connection);
+      priv->connection_invalidated_id = g_signal_connect (priv->connection,
+          "invalidated",
+          G_CALLBACK (_empathy_account_connection_invalidated_cb),
+          account);
+
+      /* notify a change in the connection property when it's ready */
+      tp_connection_call_when_ready (priv->connection,
+        empathy_account_connection_ready_cb, account);
+    }
+}
+
+void
+_empathy_account_set_enabled (EmpathyAccount *account,
+    gboolean enabled)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+
+  if (priv->enabled == enabled)
+    return;
+
+  priv->enabled = enabled;
+  g_object_notify (G_OBJECT (account), "enabled");
+}
+
+McAccount *
+_empathy_account_get_mc_account (EmpathyAccount *account)
+{
+  EmpathyAccountPriv *priv = GET_PRIV (account);
+  return priv->mc_account;
+}
diff --git a/libempathy/empathy-account.h b/libempathy/empathy-account.h
new file mode 100644 (file)
index 0000000..75babd8
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * empathy-account.h - Header for EmpathyAccount
+ * Copyright (C) 2009 Collabora Ltd.
+ * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __EMPATHY_ACCOUNT_H__
+#define __EMPATHY_ACCOUNT_H__
+
+#include <glib-object.h>
+
+#include <telepathy-glib/connection.h>
+#include <libmissioncontrol/mc-profile.h>
+
+G_BEGIN_DECLS
+
+typedef struct _EmpathyAccount EmpathyAccount;
+typedef struct _EmpathyAccountClass EmpathyAccountClass;
+
+struct _EmpathyAccountClass {
+    GObjectClass parent_class;
+};
+
+struct _EmpathyAccount {
+    GObject parent;
+    gpointer priv;
+};
+
+GType empathy_account_get_type (void);
+
+/* TYPE MACROS */
+#define EMPATHY_TYPE_ACCOUNT (empathy_account_get_type ())
+#define EMPATHY_ACCOUNT(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj), EMPATHY_TYPE_ACCOUNT, EmpathyAccount))
+#define EMPATHY_ACCOUNT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass), EMPATHY_TYPE_ACCOUNT, EmpathyAccountClass))
+#define EMPATHY_IS_ACCOUNT(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj), EMPATHY_TYPE_ACCOUNT))
+#define EMPATHY_IS_ACCOUNT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass), EMPATHY_TYPE_ACCOUNT))
+#define EMPATHY_ACCOUNT_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), EMPATHY_TYPE_ACCOUNT, \
+    EmpathyAccountClass))
+
+gboolean empathy_account_is_just_connected (EmpathyAccount *account);
+TpConnection *empathy_account_get_connection (EmpathyAccount *account);
+const gchar *empathy_account_get_unique_name (EmpathyAccount *account);
+const gchar *empathy_account_get_display_name (EmpathyAccount *account);
+
+void empathy_account_set_enabled (EmpathyAccount *account,
+  gboolean enabled);
+gboolean empathy_account_is_enabled (EmpathyAccount *account);
+
+void empathy_account_unset_param (EmpathyAccount *account, const gchar *param);
+gchar *empathy_account_get_param_string (EmpathyAccount *account,
+    const gchar *param);
+gint empathy_account_get_param_int (EmpathyAccount *account,
+    const gchar *param);
+gboolean empathy_account_get_param_boolean (EmpathyAccount *account,
+    const gchar *param);
+
+void empathy_account_set_param_string (EmpathyAccount *account,
+    const gchar *param, const gchar *value);
+void empathy_account_set_param_int (EmpathyAccount *account,
+    const gchar *param, gint value);
+void empathy_account_set_param_boolean (EmpathyAccount *account,
+    const gchar *param, gboolean value);
+
+gboolean empathy_account_is_valid (EmpathyAccount *account);
+
+void empathy_account_set_display_name (EmpathyAccount *account,
+    const gchar *display_name);
+
+
+/* TODO remove McProfile */
+McProfile *empathy_account_get_profile (EmpathyAccount *account);
+
+G_END_DECLS
+
+#endif /* #ifndef __EMPATHY_ACCOUNT_H__*/
index dd117eb999099cc624d0dcaf607305bc4e9951c9..f73c41e2eb683931f61f97dd0846b9f4cf67a282 100644 (file)
@@ -614,4 +614,5 @@ empathy_call_handler_has_initial_video (EmpathyCallHandler *handler)
   EmpathyCallHandlerPriv *priv = GET_PRIV (handler);
 
   return priv->initial_video;
-}
\ No newline at end of file
+}
+
index 44416670e4c948d4aeddd1e93377a2e132fdc6a4..1ce7a6e5d1477c4daa0f006b9d10fd8de957bbad 100644 (file)
@@ -100,7 +100,8 @@ chatroom_manager_file_save (EmpathyChatroomManager *manager)
                        continue;
                }
 
-               account_id = mc_account_get_unique_name (empathy_chatroom_get_account (chatroom));
+               account_id = empathy_account_get_unique_name (
+                 empathy_chatroom_get_account (chatroom));
 
                node = xmlNewChild (root, NULL, "chatroom", NULL);
                xmlNewTextChild (node, NULL, "name", empathy_chatroom_get_name (chatroom));
@@ -174,7 +175,7 @@ chatroom_manager_parse_chatroom (EmpathyChatroomManager *manager,
 {
        EmpathyChatroomManagerPriv *priv;
        EmpathyChatroom            *chatroom;
-       McAccount                 *account;
+       EmpathyAccount             *account;
        xmlNodePtr                 child;
        gchar                     *str;
        gchar                     *name;
@@ -220,7 +221,7 @@ chatroom_manager_parse_chatroom (EmpathyChatroomManager *manager,
                xmlFree (str);
        }
 
-       account = mc_account_lookup (account_id);
+       account = empathy_account_manager_lookup (priv->account_manager, account_id);
        if (!account) {
                g_free (name);
                g_free (room);
@@ -520,10 +521,11 @@ chatroom_manager_remove_link (EmpathyChatroomManager *manager,
   if (empathy_chatroom_is_favorite (chatroom))
     reset_save_timeout (manager);
 
+  priv->chatrooms = g_list_delete_link (priv->chatrooms, l);
+
   g_signal_emit (manager, signals[CHATROOM_REMOVED], 0, chatroom);
   g_signal_handlers_disconnect_by_func (chatroom, chatroom_changed_cb, manager);
 
-  priv->chatrooms = g_list_delete_link (priv->chatrooms, l);
   g_object_unref (chatroom);
 }
 
@@ -556,21 +558,20 @@ empathy_chatroom_manager_remove (EmpathyChatroomManager *manager,
 
 EmpathyChatroom *
 empathy_chatroom_manager_find (EmpathyChatroomManager *manager,
-                               McAccount *account,
+                               EmpathyAccount *account,
                                const gchar *room)
 {
        EmpathyChatroomManagerPriv *priv;
        GList                     *l;
 
        g_return_val_if_fail (EMPATHY_IS_CHATROOM_MANAGER (manager), NULL);
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
        g_return_val_if_fail (room != NULL, NULL);
 
        priv = GET_PRIV (manager);
 
        for (l = priv->chatrooms; l; l = l->next) {
                EmpathyChatroom *chatroom;
-               McAccount      *this_account;
+               EmpathyAccount *this_account;
                const gchar    *this_room;
 
                chatroom = l->data;
@@ -589,7 +590,7 @@ empathy_chatroom_manager_find (EmpathyChatroomManager *manager,
 
 GList *
 empathy_chatroom_manager_get_chatrooms (EmpathyChatroomManager *manager,
-                                      McAccount             *account)
+                                      EmpathyAccount *account)
 {
        EmpathyChatroomManagerPriv *priv;
        GList                     *chatrooms, *l;
@@ -619,7 +620,7 @@ empathy_chatroom_manager_get_chatrooms (EmpathyChatroomManager *manager,
 
 guint
 empathy_chatroom_manager_get_count (EmpathyChatroomManager *manager,
-                                  McAccount             *account)
+                                  EmpathyAccount *account)
 {
        EmpathyChatroomManagerPriv *priv;
        GList                     *l;
@@ -686,7 +687,7 @@ chatroom_manager_observe_channel_cb (EmpathyDispatcher *dispatcher,
   const gchar *roomname;
   GQuark channel_type;
   TpHandleType handle_type;
-  McAccount *account;
+  EmpathyAccount *account;
   TpConnection *connection;
 
   channel_type = empathy_dispatch_operation_get_channel_type_id (operation);
index 76c71d955b437265ae99beff8c2d1526a69b3293..a6038f7fc21d58747be3f4d1ed440ce6f94f9ff2 100644 (file)
@@ -27,8 +27,7 @@
 
 #include <glib-object.h>
 
-#include <libmissioncontrol/mc-account.h>
-
+#include "empathy-account.h"
 #include "empathy-chatroom.h"
 #include "empathy-dispatcher.h"
 
@@ -60,12 +59,12 @@ gboolean               empathy_chatroom_manager_add           (EmpathyChatroomMa
 void                   empathy_chatroom_manager_remove        (EmpathyChatroomManager *manager,
                                                              EmpathyChatroom        *chatroom);
 EmpathyChatroom *       empathy_chatroom_manager_find          (EmpathyChatroomManager *manager,
-                                                             McAccount             *account,
-                                                             const gchar           *room);
+                                                             EmpathyAccount           *account,
+                                                             const gchar              *room);
 GList *                empathy_chatroom_manager_get_chatrooms (EmpathyChatroomManager *manager,
-                                                             McAccount             *account);
+                                                             EmpathyAccount          *account);
 guint                  empathy_chatroom_manager_get_count     (EmpathyChatroomManager *manager,
-                                                             McAccount             *account);
+                                                             EmpathyAccount          *account);
 void                   empathy_chatroom_manager_observe       (EmpathyChatroomManager *manager,
                                                              EmpathyDispatcher *dispatcher);
 
index 6575bb9982288dacbba51a346bd562d027484278..b62d6ad77dcf1fcae2f245dcd612cf5b2b167033 100644 (file)
@@ -31,7 +31,7 @@
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyChatroom)
 typedef struct {
-       McAccount *account;
+       EmpathyAccount *account;
        gchar     *room;
        gchar     *name;
        gboolean   auto_connect;
@@ -84,7 +84,7 @@ empathy_chatroom_class_init (EmpathyChatroomClass *klass)
                                         g_param_spec_object ("account",
                                                              "Chatroom Account",
                                                              "The account associated with an chatroom",
-                                                             MC_TYPE_ACCOUNT,
+                                                             EMPATHY_TYPE_ACCOUNT,
                                                              G_PARAM_READWRITE));
 
        g_object_class_install_property (object_class,
@@ -312,22 +312,19 @@ chatroom_set_property (GObject      *object,
 }
 
 EmpathyChatroom *
-empathy_chatroom_new (McAccount *account)
+empathy_chatroom_new (EmpathyAccount *account)
 {
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
-
        return g_object_new (EMPATHY_TYPE_CHATROOM,
                             "account", account,
                             NULL);
 }
 
 EmpathyChatroom *
-empathy_chatroom_new_full (McAccount   *account,
+empathy_chatroom_new_full (EmpathyAccount *account,
                          const gchar *room,
                          const gchar *name,
                          gboolean     auto_connect)
 {
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
        g_return_val_if_fail (room != NULL, NULL);
 
        return g_object_new (EMPATHY_TYPE_CHATROOM,
@@ -338,7 +335,7 @@ empathy_chatroom_new_full (McAccount   *account,
                             NULL);
 }
 
-McAccount *
+EmpathyAccount *
 empathy_chatroom_get_account (EmpathyChatroom *chatroom)
 {
        EmpathyChatroomPriv *priv;
@@ -351,12 +348,11 @@ empathy_chatroom_get_account (EmpathyChatroom *chatroom)
 
 void
 empathy_chatroom_set_account (EmpathyChatroom *chatroom,
-                            McAccount      *account)
+                            EmpathyAccount *account)
 {
        EmpathyChatroomPriv *priv;
 
        g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));
-       g_return_if_fail (MC_IS_ACCOUNT (account));
 
        priv = GET_PRIV (chatroom);
 
@@ -407,11 +403,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;
 }
 
@@ -470,8 +466,8 @@ gboolean
 empathy_chatroom_equal (gconstpointer v1,
                       gconstpointer v2)
 {
-       McAccount   *account_a;
-       McAccount   *account_b;
+       EmpathyAccount *account_a;
+       EmpathyAccount *account_b;
        const gchar *room_a;
        const gchar *room_b;
 
index 560517d489eab78331530bfb698c45f57d375030..c18c27449f3b4ecdaef34d900c0d68ffd04a36db 100644 (file)
@@ -24,8 +24,7 @@
 
 #include <glib-object.h>
 
-#include <libmissioncontrol/mc-account.h>
-
+#include <libempathy/empathy-account.h>
 #include <libempathy/empathy-tp-chat.h>
 
 G_BEGIN_DECLS
@@ -52,14 +51,14 @@ struct _EmpathyChatroomClass {
 };
 
 GType            empathy_chatroom_get_type        (void) G_GNUC_CONST;
-EmpathyChatroom *empathy_chatroom_new             (McAccount       *account);
-EmpathyChatroom *empathy_chatroom_new_full        (McAccount       *account,
+EmpathyChatroom *empathy_chatroom_new             (EmpathyAccount  *account);
+EmpathyChatroom *empathy_chatroom_new_full        (EmpathyAccount  *account,
                                                   const gchar     *room,
                                                   const gchar     *name,
                                                   gboolean         auto_connect);
-McAccount *     empathy_chatroom_get_account      (EmpathyChatroom *chatroom);
+EmpathyAccount *     empathy_chatroom_get_account      (EmpathyChatroom *chatroom);
 void            empathy_chatroom_set_account      (EmpathyChatroom *chatroom,
-                                                  McAccount       *account);
+                                                  EmpathyAccount  *account);
 const gchar *   empathy_chatroom_get_room         (EmpathyChatroom *chatroom);
 void            empathy_chatroom_set_room         (EmpathyChatroom *chatroom,
                                                   const gchar     *room);
index f415ec19fe2ebc8298f05ac71dbe8e2aae32b4b4..7af2bd3498eea3c90dc4d3e9f8dfbe49a806fc88 100644 (file)
@@ -86,26 +86,6 @@ contact_manager_groups_changed_cb (EmpathyTpContactList  *list,
                               contact, group, is_member);
 }
 
-static void
-contact_manager_disconnect_foreach (gpointer key,
-                                   gpointer value,
-                                   gpointer user_data)
-{
-       EmpathyTpContactList  *list = value;
-       EmpathyContactManager *manager = user_data;
-
-       /* Disconnect signals from the list */
-       g_signal_handlers_disconnect_by_func (list,
-                                             contact_manager_members_changed_cb,
-                                             manager);
-       g_signal_handlers_disconnect_by_func (list,
-                                             contact_manager_pendings_changed_cb,
-                                             manager);
-       g_signal_handlers_disconnect_by_func (list,
-                                             contact_manager_groups_changed_cb,
-                                             manager);
-}
-
 static void
 contact_manager_invalidated_cb (TpProxy *connection,
                                guint    domain,
@@ -123,10 +103,34 @@ 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);
        }
 }
 
+static void
+contact_manager_disconnect_foreach (gpointer key,
+                                   gpointer value,
+                                   gpointer user_data)
+{
+       TpConnection *connection = key;
+       EmpathyTpContactList  *list = value;
+       EmpathyContactManager *manager = user_data;
+
+       /* Disconnect signals from the list */
+       g_signal_handlers_disconnect_by_func (list,
+                                             contact_manager_members_changed_cb,
+                                             manager);
+       g_signal_handlers_disconnect_by_func (list,
+                                             contact_manager_pendings_changed_cb,
+                                             manager);
+       g_signal_handlers_disconnect_by_func (list,
+                                             contact_manager_groups_changed_cb,
+                                             manager);
+       g_signal_handlers_disconnect_by_func (connection,
+                                             contact_manager_invalidated_cb,
+                                             manager);
+}
+
 static void
 contact_manager_new_connection_cb (EmpathyAccountManager *account_manager,
                                   TpConnection *connection,
@@ -499,7 +503,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 +533,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 bad6ef470accf2c280492309e52686392224b20a..d351aecbc53e9d2b5a619b79a0c06fb6a38592ce 100644 (file)
@@ -39,7 +39,7 @@
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyContact)
 typedef struct {
   TpContact *tp_contact;
-  McAccount *account;
+  EmpathyAccount *account;
   gchar *id;
   gchar *name;
   EmpathyAvatar *avatar;
@@ -159,7 +159,7 @@ empathy_contact_class_init (EmpathyContactClass *class)
       g_param_spec_object ("account",
         "The account",
         "The account associated with the contact",
-        MC_TYPE_ACCOUNT,
+        EMPATHY_TYPE_ACCOUNT,
         G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (object_class,
@@ -409,12 +409,11 @@ empathy_contact_new (TpContact *tp_contact)
 }
 
 EmpathyContact *
-empathy_contact_new_for_log (McAccount *account,
+empathy_contact_new_for_log (EmpathyAccount *account,
                              const gchar *id,
                              const gchar *name,
                              gboolean is_user)
 {
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
   g_return_val_if_fail (id != NULL, NULL);
 
   return g_object_new (EMPATHY_TYPE_CONTACT,
@@ -554,7 +553,7 @@ empathy_contact_set_avatar (EmpathyContact *contact,
   g_object_notify (G_OBJECT (contact), "avatar");
 }
 
-McAccount *
+EmpathyAccount *
 empathy_contact_get_account (EmpathyContact *contact)
 {
   EmpathyContactPriv *priv;
@@ -830,7 +829,7 @@ static gchar *
 contact_get_avatar_filename (EmpathyContact *contact,
                              const gchar *token)
 {
-  McAccount *account;
+  EmpathyAccount *account;
   gchar *avatar_path;
   gchar *avatar_file;
   gchar *token_escaped;
@@ -847,7 +846,7 @@ contact_get_avatar_filename (EmpathyContact *contact,
   avatar_path = g_build_filename (g_get_user_cache_dir (),
       PACKAGE_NAME,
       "avatars",
-      mc_account_get_unique_name (account),
+      empathy_account_get_unique_name (account),
       contact_escaped,
       NULL);
   g_mkdir_with_parents (avatar_path, 0700);
index f88831342ca1fa4daf84e93ec72034a40fd6a7c5..d4e3859248f08affb745262356b7bb71274ee17f 100644 (file)
@@ -25,7 +25,7 @@
 #include <glib-object.h>
 
 #include <telepathy-glib/contact.h>
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
@@ -70,7 +70,7 @@ typedef enum {
 
 GType empathy_contact_get_type (void) G_GNUC_CONST;
 EmpathyContact * empathy_contact_new (TpContact *tp_contact);
-EmpathyContact * empathy_contact_new_for_log (McAccount *account,
+EmpathyContact * empathy_contact_new_for_log (EmpathyAccount *account,
     const gchar *id, const gchar *name, gboolean is_user);
 TpContact * empathy_contact_get_tp_contact (EmpathyContact *contact);
 const gchar * empathy_contact_get_id (EmpathyContact *contact);
@@ -80,7 +80,7 @@ void empathy_contact_set_name (EmpathyContact *contact, const gchar *name);
 EmpathyAvatar * empathy_contact_get_avatar (EmpathyContact *contact);
 void empathy_contact_set_avatar (EmpathyContact *contact,
     EmpathyAvatar *avatar);
-McAccount * empathy_contact_get_account (EmpathyContact *contact);
+EmpathyAccount * empathy_contact_get_account (EmpathyContact *contact);
 TpConnection * empathy_contact_get_connection (EmpathyContact *contact);
 TpConnectionPresenceType empathy_contact_get_presence (EmpathyContact *contact);
 void empathy_contact_set_presence (EmpathyContact *contact,
index bcfa25debdfd64568c4397472abae532220b50b5..99111deec90d2b3a84cb03eacdc96f59fdb2a0e5 100644 (file)
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
 /*
  * Copyright (C) 2007 Collabora Ltd.
  * Copyright (C) 2007 Nokia Corporation
@@ -33,6 +33,8 @@
 
 #include "empathy-debug.h"
 
+#include "empathy-debugger.h"
+
 #ifdef ENABLE_DEBUG
 
 static EmpathyDebugFlags flags = 0;
@@ -75,18 +77,74 @@ empathy_debug_flag_is_set (EmpathyDebugFlags flag)
   return (flag & flags) != 0;
 }
 
+GHashTable *flag_to_keys = NULL;
+
+static const gchar *
+debug_flag_to_key (EmpathyDebugFlags flag)
+{
+  if (flag_to_keys == NULL)
+    {
+      guint i;
+
+      flag_to_keys = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+          NULL, g_free);
+
+      for (i = 0; keys[i].value; i++)
+        {
+          GDebugKey key = (GDebugKey) keys[i];
+          g_hash_table_insert (flag_to_keys, GUINT_TO_POINTER (key.value),
+              g_strdup (key.key));
+        }
+    }
+
+  return g_hash_table_lookup (flag_to_keys, GUINT_TO_POINTER (flag));
+}
+
+void
+empathy_debug_free (void)
+{
+  if (flag_to_keys == NULL)
+    return;
+
+  g_hash_table_destroy (flag_to_keys);
+  flag_to_keys = NULL;
+}
+
+static void
+log_to_debugger (EmpathyDebugFlags flag,
+    const gchar *message)
+{
+  EmpathyDebugger *dbg = empathy_debugger_get_singleton ();
+  gchar *domain;
+  GTimeVal now;
+
+  g_get_current_time (&now);
+
+  domain = g_strdup_printf ("%s/%s", G_LOG_DOMAIN, debug_flag_to_key (flag));
+
+  empathy_debugger_add_message (dbg, &now, domain, G_LOG_LEVEL_DEBUG, message);
+
+  g_free (domain);
+}
+
 void
 empathy_debug (EmpathyDebugFlags flag,
-               const gchar *format,
-               ...)
+    const gchar *format,
+    ...)
 {
+  gchar *message;
+  va_list args;
+
+  va_start (args, format);
+  message = g_strdup_vprintf (format, args);
+  va_end (args);
+
+  log_to_debugger (flag, message);
+
   if (flag & flags)
-    {
-      va_list args;
-      va_start (args, format);
-      g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args);
-      va_end (args);
-    }
+    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s", message);
+
+  g_free (message);
 }
 
 #else
index 787264dd0c523575432e21ef891ee00ac2116980..9df72892260a3a2aa7a3b80e3b4213bd1b916b67 100644 (file)
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
 /*
  * Copyright (C) 2007 Collabora Ltd.
  * Copyright (C) 2007 Nokia Corporation
@@ -46,6 +46,7 @@ typedef enum
 gboolean empathy_debug_flag_is_set (EmpathyDebugFlags flag);
 void empathy_debug (EmpathyDebugFlags flag, const gchar *format, ...)
     G_GNUC_PRINTF (2, 3);
+void empathy_debug_free (void);
 void empathy_debug_set_flags (const gchar *flags_string);
 G_END_DECLS
 
@@ -88,4 +89,7 @@ G_END_DECLS
 #define DEBUGGING 0
 
 #endif /* !defined (ENABLE_DEBUG) */
+
+#define gabble_debug_free() G_STMT_START { } G_STMT_END
+
 #endif /* defined (DEBUG_FLAG) */
diff --git a/libempathy/empathy-debugger.c b/libempathy/empathy-debugger.c
new file mode 100644 (file)
index 0000000..0487312
--- /dev/null
@@ -0,0 +1,270 @@
+/*
+ * Telepathy debug interface implementation
+ * Copyright (C) 2009 Collabora Ltd.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "empathy-debugger.h"
+#include "config.h"
+
+#include <telepathy-glib/dbus.h>
+
+#include "extensions/extensions.h"
+
+static EmpathyDebugger *singleton = NULL;
+
+static void
+debug_iface_init (gpointer g_iface, gpointer iface_data);
+
+G_DEFINE_TYPE_WITH_CODE (EmpathyDebugger, empathy_debugger, G_TYPE_OBJECT,
+    G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
+        tp_dbus_properties_mixin_iface_init);
+    G_IMPLEMENT_INTERFACE (EMP_TYPE_SVC_DEBUG, debug_iface_init));
+
+/* properties */
+enum
+{
+  PROP_ENABLED = 1,
+  NUM_PROPERTIES
+};
+
+static EmpDebugLevel
+log_level_flags_to_debug_level (GLogLevelFlags level)
+{
+  if (level & G_LOG_LEVEL_ERROR)
+    return EMP_DEBUG_LEVEL_ERROR;
+  else if (level & G_LOG_LEVEL_CRITICAL)
+    return EMP_DEBUG_LEVEL_CRITICAL;
+  else if (level & G_LOG_LEVEL_WARNING)
+    return EMP_DEBUG_LEVEL_WARNING;
+  else if (level & G_LOG_LEVEL_MESSAGE)
+    return EMP_DEBUG_LEVEL_MESSAGE;
+  else if (level & G_LOG_LEVEL_INFO)
+    return EMP_DEBUG_LEVEL_INFO;
+  else if (level & G_LOG_LEVEL_DEBUG)
+    return EMP_DEBUG_LEVEL_DEBUG;
+  else
+    /* Fall back to DEBUG if all else fails */
+    return EMP_DEBUG_LEVEL_DEBUG;
+}
+
+static EmpathyDebugMessage *
+debug_message_new (GTimeVal *timestamp,
+    const gchar *domain,
+    GLogLevelFlags level,
+    const gchar *string)
+{
+  EmpathyDebugMessage *msg;
+
+  msg = g_slice_new0 (EmpathyDebugMessage);
+  msg->timestamp = timestamp->tv_sec + timestamp->tv_usec / 1e6;
+  msg->domain = g_strdup (domain);
+  msg->level = log_level_flags_to_debug_level (level);
+  msg->string = g_strdup (string);
+  return msg;
+}
+
+static void
+debug_message_free (EmpathyDebugMessage *msg)
+{
+  g_free (msg->domain);
+  g_free (msg->string);
+  g_slice_free (EmpathyDebugMessage, msg);
+}
+
+static void
+empathy_debugger_get_property (GObject *object,
+    guint property_id,
+    GValue *value,
+    GParamSpec *pspec)
+{
+  EmpathyDebugger *self = EMPATHY_DEBUGGER (object);
+
+  switch (property_id)
+    {
+      case PROP_ENABLED:
+        g_value_set_boolean (value, self->enabled);
+        break;
+
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    }
+}
+
+static void
+empathy_debugger_set_property (GObject *object,
+    guint property_id,
+    const GValue *value,
+    GParamSpec *pspec)
+{
+  EmpathyDebugger *self = EMPATHY_DEBUGGER (object);
+
+  switch (property_id)
+    {
+      case PROP_ENABLED:
+        self->enabled = g_value_get_boolean (value);
+        break;
+
+     default:
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+  }
+}
+
+static void
+empathy_debugger_finalize (GObject *object)
+{
+  EmpathyDebugger *self = EMPATHY_DEBUGGER (object);
+
+  g_queue_foreach (self->messages, (GFunc) debug_message_free, NULL);
+  g_queue_free (self->messages);
+  self->messages = NULL;
+
+  G_OBJECT_CLASS (empathy_debugger_parent_class)->finalize (object);
+}
+
+static void
+empathy_debugger_class_init (EmpathyDebuggerClass *klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  static TpDBusPropertiesMixinPropImpl debug_props[] = {
+      { "Enabled", "enabled", "enabled" },
+      { NULL }
+  };
+  static TpDBusPropertiesMixinIfaceImpl prop_interfaces[] = {
+      { EMP_IFACE_DEBUG,
+        tp_dbus_properties_mixin_getter_gobject_properties,
+        tp_dbus_properties_mixin_setter_gobject_properties,
+        debug_props,
+      },
+      { NULL }
+  };
+
+  object_class->get_property = empathy_debugger_get_property;
+  object_class->set_property = empathy_debugger_set_property;
+  object_class->finalize = empathy_debugger_finalize;
+
+  g_object_class_install_property (object_class, PROP_ENABLED,
+      g_param_spec_boolean ("enabled", "Enabled?",
+          "True if the new-debug-message signal is enabled.",
+          FALSE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  klass->dbus_props_class.interfaces = prop_interfaces;
+  tp_dbus_properties_mixin_class_init (object_class,
+      G_STRUCT_OFFSET (EmpathyDebuggerClass, dbus_props_class));
+}
+
+static void
+get_messages (EmpSvcDebug *self,
+    DBusGMethodInvocation *context)
+{
+  EmpathyDebugger *dbg = EMPATHY_DEBUGGER (self);
+  GPtrArray *messages;
+  static GType struct_type = 0;
+  GList *i;
+  guint j;
+
+  if (G_UNLIKELY (struct_type == 0))
+    {
+      struct_type = dbus_g_type_get_struct (
+          "GValueArray", G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_UINT,
+          G_TYPE_STRING, G_TYPE_INVALID);
+    }
+
+  messages = g_ptr_array_sized_new (g_queue_get_length (dbg->messages));
+
+  for (i = dbg->messages->head; i; i = i->next)
+    {
+      GValue gvalue = { 0 };
+      EmpathyDebugMessage *message = (EmpathyDebugMessage *) i->data;
+
+      g_value_init (&gvalue, struct_type);
+      g_value_take_boxed (&gvalue,
+          dbus_g_type_specialized_construct (struct_type));
+      dbus_g_type_struct_set (&gvalue,
+          0, message->timestamp,
+          1, message->domain,
+          2, message->level,
+          3, message->string,
+          G_MAXUINT);
+      g_ptr_array_add (messages, g_value_get_boxed (&gvalue));
+    }
+
+  emp_svc_debug_return_from_get_messages (context, messages);
+
+  for (j = 0; j < messages->len; j++)
+    g_boxed_free (struct_type, messages->pdata[j]);
+
+  g_ptr_array_free (messages, TRUE);
+}
+
+static void
+debug_iface_init (gpointer g_iface,
+    gpointer iface_data)
+{
+  EmpSvcDebugClass *klass = (EmpSvcDebugClass *) g_iface;
+
+  emp_svc_debug_implement_get_messages (klass, get_messages);
+}
+
+static void
+empathy_debugger_init (EmpathyDebugger *self)
+{
+  self->messages = g_queue_new ();
+}
+
+EmpathyDebugger *
+empathy_debugger_get_singleton (void)
+{
+  if (G_UNLIKELY (singleton == NULL))
+    {
+      DBusGConnection *bus;
+
+      singleton = g_object_new (EMPATHY_TYPE_DEBUGGER, NULL);
+      bus = tp_get_bus ();
+      dbus_g_connection_register_g_object (bus,
+          "/org/freedesktop/Telepathy/debug", (GObject *) singleton);
+    }
+
+  return singleton;
+}
+
+void
+empathy_debugger_add_message (EmpathyDebugger *self,
+    GTimeVal *timestamp,
+    const gchar *domain,
+    GLogLevelFlags level,
+    const gchar *string)
+{
+  EmpathyDebugMessage *new_msg;
+
+  if (g_queue_get_length (self->messages) >= DEBUG_MESSAGE_LIMIT)
+    {
+      EmpathyDebugMessage *old_head =
+        (EmpathyDebugMessage *) g_queue_pop_head (self->messages);
+
+      debug_message_free (old_head);
+    }
+
+  new_msg = debug_message_new (timestamp, domain, level, string);
+  g_queue_push_tail (self->messages, new_msg);
+
+  if (self->enabled)
+    {
+      emp_svc_debug_emit_new_debug_message (self, new_msg->timestamp,
+          domain, new_msg->level, string);
+    }
+}
diff --git a/libempathy/empathy-debugger.h b/libempathy/empathy-debugger.h
new file mode 100644 (file)
index 0000000..f3fdc70
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * header for Telepathy debug interface implementation
+ * Copyright (C) 2009 Collabora Ltd.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef _EMPATHY_DEBUGGER
+#define _EMPATHY_DEBUGGER
+
+#include <glib-object.h>
+
+#include <telepathy-glib/properties-mixin.h>
+#include <telepathy-glib/dbus-properties-mixin.h>
+
+#include "extensions/extensions.h"
+
+G_BEGIN_DECLS
+
+#define EMPATHY_TYPE_DEBUGGER empathy_debugger_get_type()
+
+#define EMPATHY_DEBUGGER(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMPATHY_TYPE_DEBUGGER, EmpathyDebugger))
+
+#define EMPATHY_DEBUGGER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), EMPATHY_TYPE_DEBUGGER, EmpathyDebuggerClass))
+
+#define EMPATHY_IS_DEBUGGER(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMPATHY_TYPE_DEBUGGER))
+
+#define EMPATHY_IS_DEBUGGER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), EMPATHY_TYPE_DEBUGGER))
+
+#define EMPATHY_DEBUGGER_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), EMPATHY_TYPE_DEBUGGER, EmpathyDebuggerClass))
+
+/* On the basis that messages are around 60 bytes on average, and that 50kb is
+ * a reasonable maximum size for a frame buffer.
+ */
+
+#define DEBUG_MESSAGE_LIMIT 800
+
+typedef struct {
+  gdouble timestamp;
+  gchar *domain;
+  EmpDebugLevel level;
+  gchar *string;
+} EmpathyDebugMessage;
+
+typedef struct {
+  GObject parent;
+
+  gboolean enabled;
+  GQueue *messages;
+} EmpathyDebugger;
+
+typedef struct {
+  GObjectClass parent_class;
+  TpDBusPropertiesMixinClass dbus_props_class;
+} EmpathyDebuggerClass;
+
+GType empathy_debugger_get_type (void);
+
+EmpathyDebugger *
+empathy_debugger_get_singleton (void);
+
+void
+empathy_debugger_add_message (EmpathyDebugger *self,
+    GTimeVal *timestamp,
+    const gchar *domain,
+    GLogLevelFlags level,
+    const gchar *string);
+
+G_END_DECLS
+
+#endif /* _EMPATHY_DEBUGGER */
index 7a116f870689ff3d7845d7366d3f3c8c6f0e1a14..79fe8c62d08723da54cf3633f9c180c66f341718 100644 (file)
@@ -22,6 +22,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+#include <telepathy-glib/interfaces.h>
+
 #include "empathy-dispatch-operation.h"
 #include <libempathy/empathy-enum-types.h>
 #include <libempathy/empathy-tp-contact-factory.h>
@@ -215,7 +217,7 @@ empathy_dispatch_operation_constructed (GObject *object)
 
   handle = tp_channel_get_handle (priv->channel, &handle_type);
 
-  if (handle_type == TP_CONN_HANDLE_TYPE_CONTACT && priv->contact == NULL)
+  if (handle_type == TP_HANDLE_TYPE_CONTACT && priv->contact == NULL)
     {
       EmpathyTpContactFactory *factory;
 
index 84ed36013ad04b05618d0e3e42958c5f25d382b6..148adec905e2f5f61f90d4465e2b511460c8b021 100644 (file)
@@ -24,6 +24,8 @@
 #include <glib-object.h>
 
 #include <libempathy/empathy-contact.h>
+#include <telepathy-glib/connection.h>
+#include <telepathy-glib/channel.h>
 
 G_BEGIN_DECLS
 
index c723079204de442c1fdf9bf9b752befaad7a1a9d..5d2fa2bdc9833e1e00e1a2c44ea461fb3dfadda2 100644 (file)
@@ -25,6 +25,9 @@
 
 #include <glib/gi18n-lib.h>
 #include <dbus/dbus-glib.h>
+#ifdef HAVE_NM
+#include <nm-client.h>
+#endif
 
 #include <telepathy-glib/dbus.h>
 #include <telepathy-glib/util.h>
@@ -43,7 +46,9 @@
 typedef struct {
        MissionControl *mc;
        DBusGProxy     *gs_proxy;
-       DBusGProxy     *nm_proxy;
+#ifdef HAVE_NM
+       NMClient       *nm_client;
+#endif
 
        TpConnectionPresenceType      state;
        gchar          *status;
@@ -61,12 +66,12 @@ typedef struct {
 } EmpathyIdlePriv;
 
 typedef enum {
-       NM_STATE_UNKNOWN,
-       NM_STATE_ASLEEP,
-       NM_STATE_CONNECTING,
-       NM_STATE_CONNECTED,
-       NM_STATE_DISCONNECTED
-} NMState;
+       SESSION_STATUS_AVAILABLE,
+       SESSION_STATUS_INVISIBLE,
+       SESSION_STATUS_BUSY,
+       SESSION_STATUS_IDLE,
+       SESSION_STATUS_UNKNOWN
+} SessionStatus;
 
 enum {
        PROP_0,
@@ -91,6 +96,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);
@@ -147,14 +156,17 @@ idle_ext_away_start (EmpathyIdle *idle)
 }
 
 static void
-idle_session_idle_changed_cb (DBusGProxy  *gs_proxy,
-                             gboolean     is_idle,
-                             EmpathyIdle *idle)
+idle_session_status_changed_cb (DBusGProxy    *gs_proxy,
+                               SessionStatus  status,
+                               EmpathyIdle   *idle)
 {
        EmpathyIdlePriv *priv;
+       gboolean is_idle;
 
        priv = GET_PRIV (idle);
 
+       is_idle = (status == SESSION_STATUS_IDLE);
+
        DEBUG ("Session idle state changed, %s -> %s",
                priv->is_idle ? "yes" : "no",
                is_idle ? "yes" : "no");
@@ -219,22 +231,24 @@ idle_session_idle_changed_cb (DBusGProxy  *gs_proxy,
        priv->is_idle = is_idle;
 }
 
+#ifdef HAVE_NM
 static void
-idle_nm_state_change_cb (DBusGProxy  *proxy,
-                        guint        state,
-                        EmpathyIdle *idle)
+idle_nm_state_change_cb (NMClient         *client,
+                        const GParamSpec *pspec,
+                        EmpathyIdle      *idle)
 {
        EmpathyIdlePriv *priv;
        gboolean         old_nm_connected;
        gboolean         new_nm_connected;
+       NMState          state;
 
        priv = GET_PRIV (idle);
 
-       if (!priv->use_nm
-           || priv->nm_saved_state == TP_CONNECTION_PRESENCE_TYPE_UNSET) {
+       if (!priv->use_nm) {
                return;
        }
 
+       state = nm_client_get_state (priv->nm_client);
        old_nm_connected = priv->nm_connected;
        new_nm_connected = !(state == NM_STATE_CONNECTING ||
                             state == NM_STATE_DISCONNECTED);
@@ -251,7 +265,8 @@ idle_nm_state_change_cb (DBusGProxy  *proxy,
                priv->nm_saved_status = g_strdup (priv->status);
                empathy_idle_set_state (idle, TP_CONNECTION_PRESENCE_TYPE_OFFLINE);
        }
-       else if (!old_nm_connected && new_nm_connected) {
+       else if (!old_nm_connected && new_nm_connected
+                       && priv->nm_saved_state != TP_CONNECTION_PRESENCE_TYPE_UNSET) {
                /* We are now connected */
                DEBUG ("Reconnected: Restore state %d (%s)",
                                priv->nm_saved_state, priv->nm_saved_status);
@@ -265,6 +280,7 @@ idle_nm_state_change_cb (DBusGProxy  *proxy,
 
        priv->nm_connected = new_nm_connected;
 }
+#endif
 
 static void
 idle_finalize (GObject *object)
@@ -280,6 +296,12 @@ idle_finalize (GObject *object)
                g_object_unref (priv->gs_proxy);
        }
 
+#ifdef HAVE_NM
+       if (priv->nm_client) {
+               g_object_unref (priv->nm_client);
+       }
+#endif
+
        idle_ext_away_stop (EMPATHY_IDLE (object));
 }
 
@@ -418,8 +440,8 @@ empathy_idle_class_init (EmpathyIdleClass *klass)
                                          g_param_spec_boolean ("use-nm",
                                                                "Use Network Manager",
                                                                "Set presence according to Network Manager",
-                                                               FALSE,
-                                                               G_PARAM_READWRITE));
+                                                               TRUE,
+                                                               G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
 
        g_type_class_add_private (object_class, sizeof (EmpathyIdlePriv));
 }
@@ -446,14 +468,13 @@ empathy_idle_get_actual_presence (EmpathyIdle *idle, GError **error)
        case MC_PRESENCE_DO_NOT_DISTURB:
                return TP_CONNECTION_PRESENCE_TYPE_BUSY;
        default:
-               return TP_CONNECTION_PRESENCE_TYPE_UNSET;
+               return TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
        }
 }
 
 static void
 empathy_idle_init (EmpathyIdle *idle)
 {
-       DBusGConnection *system_bus;
        GError          *error = NULL;
        EmpathyIdlePriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (idle,
                EMPATHY_TYPE_IDLE, EmpathyIdlePriv);
@@ -488,42 +509,29 @@ empathy_idle_init (EmpathyIdle *idle)
                                     idle, NULL);
 
        priv->gs_proxy = dbus_g_proxy_new_for_name (tp_get_bus (),
-                                                   "org.gnome.ScreenSaver",
-                                                   "/org/gnome/ScreenSaver",
-                                                   "org.gnome.ScreenSaver");
+                                                   "org.gnome.SessionManager",
+                                                   "/org/gnome/SessionManager/Presence",
+                                                   "org.gnome.SessionManager.Presence");
        if (priv->gs_proxy) {
-               dbus_g_proxy_add_signal (priv->gs_proxy, "SessionIdleChanged",
-                                        G_TYPE_BOOLEAN,
-                                        G_TYPE_INVALID);
-               dbus_g_proxy_connect_signal (priv->gs_proxy, "SessionIdleChanged",
-                                            G_CALLBACK (idle_session_idle_changed_cb),
+               dbus_g_proxy_add_signal (priv->gs_proxy, "StatusChanged",
+                                        G_TYPE_UINT, G_TYPE_INVALID);
+               dbus_g_proxy_connect_signal (priv->gs_proxy, "StatusChanged",
+                                            G_CALLBACK (idle_session_status_changed_cb),
                                             idle, NULL);
        } else {
                DEBUG ("Failed to get gs proxy");
        }
 
-
-       system_bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
-       if (!system_bus) {
-               DEBUG ("Failed to get system bus: %s",
-                       error ? error->message : "No error given");
-       } else {
-               priv->nm_proxy = dbus_g_proxy_new_for_name (system_bus,
-                                                           "org.freedesktop.NetworkManager",
-                                                           "/org/freedesktop/NetworkManager",
-                                                           "org.freedesktop.NetworkManager");
-       }
-       if (priv->nm_proxy) {
-               dbus_g_proxy_add_signal (priv->nm_proxy, "StateChange",
-                                        G_TYPE_UINT, G_TYPE_INVALID);
-               dbus_g_proxy_connect_signal (priv->nm_proxy, "StateChange",
-                                            G_CALLBACK (idle_nm_state_change_cb),
-                                            idle, NULL);
+#ifdef HAVE_NM
+       priv->nm_client = nm_client_new ();
+       if (priv->nm_client) {
+               g_signal_connect (priv->nm_client, "notify::" NM_CLIENT_STATE,
+                                 G_CALLBACK (idle_nm_state_change_cb),
+                                 idle);
        } else {
                DEBUG ("Failed to get nm proxy");
        }
-
-       priv->nm_connected = TRUE;
+#endif
 }
 
 EmpathyIdle *
@@ -708,29 +716,20 @@ empathy_idle_set_use_nm (EmpathyIdle *idle,
 {
        EmpathyIdlePriv *priv = GET_PRIV (idle);
 
-       if (!priv->nm_proxy || use_nm == priv->use_nm) {
+#ifdef HAVE_NM
+       if (!priv->nm_client || use_nm == priv->use_nm) {
                return;
        }
+#endif
 
        priv->use_nm = use_nm;
 
+#ifdef HAVE_NM
        if (use_nm) {
-               guint   nm_status;
-               GError *error = NULL;
-
-               dbus_g_proxy_call (priv->nm_proxy, "state",
-                                  &error,
-                                  G_TYPE_INVALID,
-                                  G_TYPE_UINT, &nm_status,
-                                  G_TYPE_INVALID);
-
-               if (error) {
-                       DEBUG ("Couldn't get NM state: %s", error->message);
-                       g_clear_error (&error);
-                       nm_status = NM_STATE_ASLEEP;
-               }
-               
-               idle_nm_state_change_cb (priv->nm_proxy, nm_status, idle);
+               idle_nm_state_change_cb (priv->nm_client, NULL, idle);
+#else
+       if (0) {
+#endif
        } else {
                priv->nm_connected = TRUE;
                if (priv->nm_saved_state != TP_CONNECTION_PRESENCE_TYPE_UNSET) {
index b4c1f1a9232691bec0e1ecc09e3a2e4cfae309cc..c1e20f487c81d04ced78fb23065c53123afc6837 100644 (file)
@@ -157,7 +157,7 @@ empathy_log_manager_add_message (EmpathyLogManager *manager,
 
 gboolean
 empathy_log_manager_exists (EmpathyLogManager *manager,
-                            McAccount *account,
+                            EmpathyAccount *account,
                             const gchar *chat_id,
                             gboolean chatroom)
 {
@@ -165,7 +165,6 @@ empathy_log_manager_exists (EmpathyLogManager *manager,
   EmpathyLogManagerPriv *priv;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), FALSE);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), FALSE);
   g_return_val_if_fail (chat_id != NULL, FALSE);
 
   priv = GET_PRIV (manager);
@@ -182,7 +181,7 @@ empathy_log_manager_exists (EmpathyLogManager *manager,
 
 GList *
 empathy_log_manager_get_dates (EmpathyLogManager *manager,
-                               McAccount *account,
+                               EmpathyAccount *account,
                                const gchar *chat_id,
                                gboolean chatroom)
 {
@@ -190,7 +189,6 @@ empathy_log_manager_get_dates (EmpathyLogManager *manager,
   EmpathyLogManagerPriv *priv;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
   g_return_val_if_fail (chat_id != NULL, NULL);
 
   priv = GET_PRIV (manager);
@@ -219,7 +217,7 @@ empathy_log_manager_get_dates (EmpathyLogManager *manager,
 
 GList *
 empathy_log_manager_get_messages_for_date (EmpathyLogManager *manager,
-                                           McAccount *account,
+                                           EmpathyAccount *account,
                                            const gchar *chat_id,
                                            gboolean chatroom,
                                            const gchar *date)
@@ -228,7 +226,6 @@ empathy_log_manager_get_messages_for_date (EmpathyLogManager *manager,
   EmpathyLogManagerPriv *priv;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
   g_return_val_if_fail (chat_id != NULL, NULL);
 
   priv = GET_PRIV (manager);
@@ -261,7 +258,7 @@ log_manager_message_date_cmp (gconstpointer a,
 
 GList *
 empathy_log_manager_get_filtered_messages (EmpathyLogManager *manager,
-                                          McAccount *account,
+                                          EmpathyAccount *account,
                                           const gchar *chat_id,
                                           gboolean chatroom,
                                           guint num_messages,
@@ -274,7 +271,6 @@ empathy_log_manager_get_filtered_messages (EmpathyLogManager *manager,
   guint i = 0;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
   g_return_val_if_fail (chat_id != NULL, NULL);
 
   priv = GET_PRIV (manager);
@@ -322,13 +318,12 @@ empathy_log_manager_get_filtered_messages (EmpathyLogManager *manager,
 
 GList *
 empathy_log_manager_get_chats (EmpathyLogManager *manager,
-                               McAccount *account)
+                               EmpathyAccount *account)
 {
   GList *l, *out = NULL;
   EmpathyLogManagerPriv *priv;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
 
   priv = GET_PRIV (manager);
 
index da7be4a435759086bc667f097ee0813ca4ec1098..6907e2ede31cdccd24bc5b54c446d1ef989e9040 100644 (file)
@@ -65,7 +65,7 @@ struct _EmpathyLogManagerClass
 
 struct _EmpathyLogSearchHit
 {
-  McAccount *account;
+  EmpathyAccount *account;
   gchar     *chat_id;
   gboolean   is_chatroom;
   gchar     *filename;
@@ -81,17 +81,17 @@ gboolean empathy_log_manager_add_message (EmpathyLogManager *manager,
     const gchar *chat_id, gboolean chatroom, EmpathyMessage *message,
     GError **error);
 gboolean empathy_log_manager_exists (EmpathyLogManager *manager,
-    McAccount *account, const gchar *chat_id, gboolean chatroom);
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom);
 GList *empathy_log_manager_get_dates (EmpathyLogManager *manager,
-    McAccount *account, const gchar *chat_id, gboolean chatroom);
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom);
 GList *empathy_log_manager_get_messages_for_date (EmpathyLogManager *manager,
-    McAccount *account, const gchar *chat_id, gboolean chatroom,
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom,
     const gchar *date);
 GList *empathy_log_manager_get_filtered_messages (EmpathyLogManager *manager,
-    McAccount *account, const gchar *chat_id, gboolean chatroom,
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom,
     guint num_messages, EmpathyLogMessageFilter filter, gpointer user_data);
 GList *empathy_log_manager_get_chats (EmpathyLogManager *manager,
-    McAccount *account);
+    EmpathyAccount *account);
 GList *empathy_log_manager_search_new (EmpathyLogManager *manager,
     const gchar *text);
 void empathy_log_manager_search_free (GList *hits);
index 94f4d14579718dcb6f791bb1968676e3d852eb1e..7e50cb12facaba8860b110ffdc7c19848dd9b641 100644 (file)
@@ -32,6 +32,7 @@
 #include "empathy-log-store.h"
 #include "empathy-log-store-empathy.h"
 #include "empathy-log-manager.h"
+#include "empathy-account-manager.h"
 #include "empathy-contact.h"
 #include "empathy-time.h"
 #include "empathy-utils.h"
@@ -59,6 +60,7 @@ typedef struct
 {
   gchar *basedir;
   gchar *name;
+  EmpathyAccountManager *account_manager;
 } EmpathyLogStoreEmpathyPriv;
 
 static void log_store_iface_init (gpointer g_iface,gpointer iface_data);
@@ -73,6 +75,7 @@ log_store_empathy_finalize (GObject *object)
   EmpathyLogStoreEmpathy *self = EMPATHY_LOG_STORE_EMPATHY (object);
   EmpathyLogStoreEmpathyPriv *priv = GET_PRIV (self);
 
+  g_object_unref (priv->account_manager);
   g_free (priv->basedir);
   g_free (priv->name);
 }
@@ -99,11 +102,12 @@ empathy_log_store_empathy_init (EmpathyLogStoreEmpathy *self)
       ".gnome2", PACKAGE_NAME, "logs", NULL);
 
   priv->name = g_strdup ("Empathy");
+  priv->account_manager = empathy_account_manager_dup_singleton ();
 }
 
 static gchar *
 log_store_empathy_get_dir (EmpathyLogStore *self,
-                           McAccount *account,
+                           EmpathyAccount *account,
                            const gchar *chat_id,
                            gboolean chatroom)
 {
@@ -113,7 +117,7 @@ log_store_empathy_get_dir (EmpathyLogStore *self,
 
   priv = GET_PRIV (self);
 
-  account_id = mc_account_get_unique_name (account);
+  account_id = empathy_account_get_unique_name (account);
 
   if (chatroom)
     basedir = g_build_path (G_DIR_SEPARATOR_S, priv->basedir, account_id,
@@ -154,7 +158,7 @@ log_store_empathy_get_timestamp_from_message (EmpathyMessage *message)
 
 static gchar *
 log_store_empathy_get_filename (EmpathyLogStore *self,
-                                McAccount *account,
+                                EmpathyAccount *account,
                                 const gchar *chat_id,
                                 gboolean chatroom)
 {
@@ -180,7 +184,7 @@ log_store_empathy_add_message (EmpathyLogStore *self,
                                GError **error)
 {
   FILE *file;
-  McAccount *account;
+  EmpathyAccount *account;
   EmpathyContact *sender;
   const gchar *body_str;
   const gchar *str;
@@ -267,7 +271,7 @@ log_store_empathy_add_message (EmpathyLogStore *self,
 
 static gboolean
 log_store_empathy_exists (EmpathyLogStore *self,
-                          McAccount *account,
+                          EmpathyAccount *account,
                           const gchar *chat_id,
                           gboolean chatroom)
 {
@@ -283,7 +287,7 @@ log_store_empathy_exists (EmpathyLogStore *self,
 
 static GList *
 log_store_empathy_get_dates (EmpathyLogStore *self,
-                             McAccount *account,
+                             EmpathyAccount *account,
                              const gchar *chat_id,
                              gboolean chatroom)
 {
@@ -295,7 +299,6 @@ log_store_empathy_get_dates (EmpathyLogStore *self,
   const gchar *p;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_STORE (self), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
   g_return_val_if_fail (chat_id != NULL, NULL);
 
   directory = log_store_empathy_get_dir (self, account, chat_id, chatroom);
@@ -336,7 +339,7 @@ log_store_empathy_get_dates (EmpathyLogStore *self,
 
 static gchar *
 log_store_empathy_get_filename_for_date (EmpathyLogStore *self,
-                                         McAccount *account,
+                                         EmpathyAccount *account,
                                          const gchar *chat_id,
                                          gboolean chatroom,
                                          const gchar *date)
@@ -359,6 +362,7 @@ static EmpathyLogSearchHit *
 log_store_empathy_search_hit_new (EmpathyLogStore *self,
                                   const gchar *filename)
 {
+  EmpathyLogStoreEmpathyPriv *priv = GET_PRIV (self);
   EmpathyLogSearchHit *hit;
   const gchar *account_name;
   const gchar *end;
@@ -383,7 +387,8 @@ log_store_empathy_search_hit_new (EmpathyLogStore *self,
   else
     account_name = strv[len-3];
 
-  hit->account = mc_account_lookup (account_name);
+  hit->account = empathy_account_manager_lookup (priv->account_manager,
+    account_name);
   hit->filename = g_strdup (filename);
 
   g_strfreev (strv);
@@ -401,7 +406,7 @@ log_store_empathy_get_messages_for_file (EmpathyLogStore *self,
   xmlNodePtr log_node;
   xmlNodePtr node;
   EmpathyLogSearchHit *hit;
-  McAccount *account;
+  EmpathyAccount *account;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_STORE (self), NULL);
   g_return_val_if_fail (filename != NULL, NULL);
@@ -666,7 +671,7 @@ log_store_empathy_get_chats_for_dir (EmpathyLogStore *self,
 
 static GList *
 log_store_empathy_get_messages_for_date (EmpathyLogStore *self,
-                                         McAccount *account,
+                                         EmpathyAccount *account,
                                          const gchar *chat_id,
                                          gboolean chatroom,
                                          const gchar *date)
@@ -675,7 +680,6 @@ log_store_empathy_get_messages_for_date (EmpathyLogStore *self,
   GList *messages;
 
   g_return_val_if_fail (EMPATHY_IS_LOG_STORE (self), NULL);
-  g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
   g_return_val_if_fail (chat_id != NULL, NULL);
 
   filename = log_store_empathy_get_filename_for_date (self, account,
@@ -688,7 +692,7 @@ log_store_empathy_get_messages_for_date (EmpathyLogStore *self,
 
 static GList *
 log_store_empathy_get_chats (EmpathyLogStore *self,
-                              McAccount *account)
+                              EmpathyAccount *account)
 {
   gchar *dir;
   GList *hits;
@@ -697,7 +701,7 @@ log_store_empathy_get_chats (EmpathyLogStore *self,
   priv = GET_PRIV (self);
 
   dir = g_build_filename (priv->basedir,
-      mc_account_get_unique_name (account), NULL);
+      empathy_account_get_unique_name (account), NULL);
 
   hits = log_store_empathy_get_chats_for_dir (self, dir, FALSE);
 
@@ -716,7 +720,7 @@ log_store_empathy_get_name (EmpathyLogStore *self)
 
 static GList *
 log_store_empathy_get_filtered_messages (EmpathyLogStore *self,
-                                         McAccount *account,
+                                         EmpathyAccount *account,
                                          const gchar *chat_id,
                                          gboolean chatroom,
                                          guint num_messages,
index 21a881559548966b4a1b02587880415ec77b5ba6..f136f7910f226bd615fb9aac81393b7781ed5a91 100644 (file)
@@ -55,7 +55,7 @@ empathy_log_store_get_name (EmpathyLogStore *self)
 
 gboolean
 empathy_log_store_exists (EmpathyLogStore *self,
-                          McAccount *account,
+                          EmpathyAccount *account,
                           const gchar *chat_id,
                           gboolean chatroom)
 {
@@ -84,7 +84,7 @@ empathy_log_store_add_message (EmpathyLogStore *self,
 
 GList *
 empathy_log_store_get_dates (EmpathyLogStore *self,
-                             McAccount *account,
+                             EmpathyAccount *account,
                              const gchar *chat_id,
                              gboolean chatroom)
 {
@@ -97,7 +97,7 @@ empathy_log_store_get_dates (EmpathyLogStore *self,
 
 GList *
 empathy_log_store_get_messages_for_date (EmpathyLogStore *self,
-                                         McAccount *account,
+                                         EmpathyAccount *account,
                                          const gchar *chat_id,
                                          gboolean chatroom,
                                          const gchar *date)
@@ -111,7 +111,7 @@ empathy_log_store_get_messages_for_date (EmpathyLogStore *self,
 
 GList *
 empathy_log_store_get_last_messages (EmpathyLogStore *self,
-                                     McAccount *account,
+                                     EmpathyAccount *account,
                                      const gchar *chat_id,
                                      gboolean chatroom)
 {
@@ -124,7 +124,7 @@ empathy_log_store_get_last_messages (EmpathyLogStore *self,
 
 GList *
 empathy_log_store_get_chats (EmpathyLogStore *self,
-                             McAccount *account)
+                             EmpathyAccount *account)
 {
   if (!EMPATHY_LOG_STORE_GET_INTERFACE (self)->get_chats)
     return NULL;
@@ -157,7 +157,7 @@ empathy_log_store_ack_message (EmpathyLogStore *self,
 
 GList *
 empathy_log_store_get_filtered_messages (EmpathyLogStore *self,
-                                         McAccount *account,
+                                         EmpathyAccount *account,
                                          const gchar *chat_id,
                                          gboolean chatroom,
                                          guint num_messages,
index db698c4b0a2749524e8559a9ade1422040c3bc84..5b6a878758f2f79b5a90d46d35dd204fc4f2c8e5 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <glib-object.h>
 
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 #include "empathy-message.h"
 #include "empathy-log-manager.h"
@@ -50,23 +50,23 @@ struct _EmpathyLogStoreInterface
   GTypeInterface parent;
 
   const gchar * (*get_name) (EmpathyLogStore *self);
-  gboolean (*exists) (EmpathyLogStore *self, McAccount *account,
+  gboolean (*exists) (EmpathyLogStore *self, EmpathyAccount *account,
       const gchar *chat_id, gboolean chatroom);
   gboolean (*add_message) (EmpathyLogStore *self, const gchar *chat_id,
       gboolean chatroom, EmpathyMessage *message, GError **error);
-  GList * (*get_dates) (EmpathyLogStore *self, McAccount *account,
+  GList * (*get_dates) (EmpathyLogStore *self, EmpathyAccount *account,
       const gchar *chat_id, gboolean chatroom);
   GList * (*get_messages_for_date) (EmpathyLogStore *self,
-      McAccount *account, const gchar *chat_id, gboolean chatroom,
+      EmpathyAccount *account, const gchar *chat_id, gboolean chatroom,
       const gchar *date);
-  GList * (*get_last_messages) (EmpathyLogStore *self, McAccount *account,
+  GList * (*get_last_messages) (EmpathyLogStore *self, EmpathyAccount *account,
       const gchar *chat_id, gboolean chatroom);
   GList * (*get_chats) (EmpathyLogStore *self,
-            McAccount         *account);
+            EmpathyAccount    *account);
   GList * (*search_new) (EmpathyLogStore *self, const gchar *text);
   void (*ack_message) (EmpathyLogStore *self, const gchar *chat_id,
       gboolean chatroom, EmpathyMessage *message);
-  GList * (*get_filtered_messages) (EmpathyLogStore *self, McAccount *account,
+  GList * (*get_filtered_messages) (EmpathyLogStore *self, EmpathyAccount *account,
       const gchar *chat_id, gboolean chatroom, guint num_messages,
       EmpathyLogMessageFilter filter, gpointer user_data);
 };
@@ -75,25 +75,25 @@ GType empathy_log_store_get_type (void) G_GNUC_CONST;
 
 const gchar *empathy_log_store_get_name (EmpathyLogStore *self);
 gboolean empathy_log_store_exists (EmpathyLogStore *self,
-    McAccount *account, const gchar *chat_id, gboolean chatroom);
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom);
 gboolean empathy_log_store_add_message (EmpathyLogStore *self,
     const gchar *chat_id, gboolean chatroom, EmpathyMessage *message,
     GError **error);
 GList *empathy_log_store_get_dates (EmpathyLogStore *self,
-    McAccount *account, const gchar *chat_id, gboolean chatroom);
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom);
 GList *empathy_log_store_get_messages_for_date (EmpathyLogStore *self,
-    McAccount *account, const gchar *chat_id, gboolean chatroom,
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom,
     const gchar *date);
 GList *empathy_log_store_get_last_messages (EmpathyLogStore *self,
-    McAccount *account, const gchar *chat_id, gboolean chatroom);
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom);
 GList *empathy_log_store_get_chats (EmpathyLogStore *self,
-    McAccount *account);
+    EmpathyAccount *account);
 GList *empathy_log_store_search_new (EmpathyLogStore *self,
     const gchar *text);
 void empathy_log_store_ack_message (EmpathyLogStore *self,
     const gchar *chat_id, gboolean chatroom, EmpathyMessage *message);
 GList *empathy_log_store_get_filtered_messages (EmpathyLogStore *self,
-    McAccount *account, const gchar *chat_id, gboolean chatroom,
+    EmpathyAccount *account, const gchar *chat_id, gboolean chatroom,
     guint num_messages, EmpathyLogMessageFilter filter, gpointer user_data);
 
 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 6810476d19d5127d60bcc60bcbd04eb0e1a909ad..a3282818f09935fe04928e23a12be9ae4c14b2a0 100644 (file)
@@ -1032,7 +1032,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 96fdfda6807c9a53bf362181425fae18001d223c..27160a4454abf1665e2253a013d175996a7966f0 100644 (file)
@@ -494,21 +494,47 @@ tp_contact_factory_geocode (EmpathyContact *contact)
 
        address = geoclue_address_details_new ();
 
+       str = get_dup_string (location, EMPATHY_LOCATION_COUNTRY_CODE);
+       if (str != NULL) {
+               g_hash_table_insert (address,
+                       g_strdup (GEOCLUE_ADDRESS_KEY_COUNTRYCODE), str);
+               DEBUG ("\t - countrycode: %s", str);
+       }
+
        str = get_dup_string (location, EMPATHY_LOCATION_COUNTRY);
-       if (str != NULL)
-               g_hash_table_insert (address, g_strdup ("country"), str);
+       if (str != NULL) {
+               g_hash_table_insert (address,
+                       g_strdup (GEOCLUE_ADDRESS_KEY_COUNTRY), str);
+               DEBUG ("\t - country: %s", str);
+       }
 
        str = get_dup_string (location, EMPATHY_LOCATION_POSTAL_CODE);
-       if (str != NULL)
-               g_hash_table_insert (address, g_strdup ("postalcode"), str);
+       if (str != NULL) {
+               g_hash_table_insert (address,
+                       g_strdup (GEOCLUE_ADDRESS_KEY_POSTALCODE), str);
+               DEBUG ("\t - postalcode: %s", str);
+       }
+
+       str = get_dup_string (location, EMPATHY_LOCATION_REGION);
+       if (str != NULL) {
+               g_hash_table_insert (address,
+                       g_strdup (GEOCLUE_ADDRESS_KEY_REGION), str);
+               DEBUG ("\t - region: %s", str);
+       }
 
        str = get_dup_string (location, EMPATHY_LOCATION_LOCALITY);
-       if (str != NULL)
-               g_hash_table_insert (address, g_strdup ("locality"), str);
+       if (str != NULL) {
+               g_hash_table_insert (address,
+                       g_strdup (GEOCLUE_ADDRESS_KEY_LOCALITY), str);
+               DEBUG ("\t - locality: %s", str);
+       }
 
        str = get_dup_string (location, EMPATHY_LOCATION_STREET);
-       if (str != NULL)
-               g_hash_table_insert (address, g_strdup ("street"), str);
+       if (str != NULL) {
+               g_hash_table_insert (address,
+                       g_strdup (GEOCLUE_ADDRESS_KEY_STREET), str);
+               DEBUG ("\t - street: %s", str);
+       }
 
        g_object_ref (contact);
        geoclue_geocode_address_to_position_async (geocode, address,
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 1b2e393d10fbe94b7dd5a4700e94c15afc2dd62b..b3d955ee4b0b75f6dc0d1794e1569d66e0a30f29 100644 (file)
@@ -27,7 +27,7 @@
 #include <telepathy-glib/dbus.h>
 #include <telepathy-glib/util.h>
 
-#include <libmissioncontrol/mission-control.h>
+#include "empathy-account.h"
 
 #include "empathy-tp-roomlist.h"
 #include "empathy-chatroom.h"
@@ -40,7 +40,7 @@
 typedef struct {
        TpConnection *connection;
        TpChannel    *channel;
-       McAccount    *account;
+       EmpathyAccount    *account;
        gboolean      is_listing;
        gboolean      start_requested;
 } EmpathyTpRoomlistPriv;
@@ -54,7 +54,7 @@ enum {
 
 enum {
        PROP_0,
-       PROP_CONNECTION,
+       PROP_ACCOUNT,
        PROP_IS_LISTING,
 };
 
@@ -352,13 +352,9 @@ static void
 tp_roomlist_constructed (GObject *list)
 {
        EmpathyTpRoomlistPriv *priv = GET_PRIV (list);
-       MissionControl        *mc;
 
-       mc = empathy_mission_control_dup_singleton ();
-       priv->account = mission_control_get_account_for_tpconnection (mc,
-                                                                     priv->connection,
-                                                                     NULL);
-       g_object_unref (mc);
+       priv->connection = empathy_account_get_connection (priv->account);
+       g_object_ref (priv->connection);
 
        tp_cli_connection_call_request_channel (priv->connection, -1,
                                                TP_IFACE_CHANNEL_TYPE_ROOM_LIST,
@@ -379,8 +375,8 @@ tp_roomlist_get_property (GObject    *object,
        EmpathyTpRoomlistPriv *priv = GET_PRIV (object);
 
        switch (param_id) {
-       case PROP_CONNECTION:
-               g_value_set_object (value, priv->connection);
+       case PROP_ACCOUNT:
+               g_value_set_object (value, priv->account);
                break;
        case PROP_IS_LISTING:
                g_value_set_boolean (value, priv->is_listing);
@@ -400,8 +396,8 @@ tp_roomlist_set_property (GObject      *object,
        EmpathyTpRoomlistPriv *priv = GET_PRIV (object);
 
        switch (param_id) {
-       case PROP_CONNECTION:
-               priv->connection = g_object_ref (g_value_get_object (value));
+       case PROP_ACCOUNT:
+               priv->account = g_value_dup_object (value);
                break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -420,11 +416,11 @@ empathy_tp_roomlist_class_init (EmpathyTpRoomlistClass *klass)
        object_class->set_property = tp_roomlist_set_property;
 
        g_object_class_install_property (object_class,
-                                        PROP_CONNECTION,
-                                        g_param_spec_object ("connection",
-                                                             "The Connection",
-                                                             "The connection on which it lists rooms",
-                                                             TP_TYPE_CONNECTION,
+                                        PROP_ACCOUNT,
+                                        g_param_spec_object ("account",
+                                                             "The Account",
+                                                             "The account on which it lists rooms",
+                                                             EMPATHY_TYPE_ACCOUNT,
                                                              G_PARAM_READWRITE |
                                                              G_PARAM_CONSTRUCT_ONLY));
        g_object_class_install_property (object_class,
@@ -480,24 +476,14 @@ empathy_tp_roomlist_init (EmpathyTpRoomlist *list)
 }
 
 EmpathyTpRoomlist *
-empathy_tp_roomlist_new (McAccount *account)
+empathy_tp_roomlist_new (EmpathyAccount *account)
 {
        EmpathyTpRoomlist *list;
-       MissionControl    *mc;
-       TpConnection      *connection;
-
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
-
-       mc = empathy_mission_control_dup_singleton ();
-       connection = mission_control_get_tpconnection (mc, account, NULL);
 
        list = g_object_new (EMPATHY_TYPE_TP_ROOMLIST,
-                            "connection", connection,
+                            "account", account,
                             NULL);
 
-       g_object_unref (mc);
-       g_object_unref (connection);
-
        return list;
 }
 
index 9f45b7f5ce4906b98b3f3186554ec2ff25994f9c..801e5c69f8e1a1a56487635df4fb15622c95c102 100644 (file)
@@ -25,7 +25,7 @@
 #include <glib.h>
 
 #include <telepathy-glib/connection.h>
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
@@ -49,7 +49,7 @@ struct _EmpathyTpRoomlistClass {
 };
 
 GType              empathy_tp_roomlist_get_type   (void) G_GNUC_CONST;
-EmpathyTpRoomlist *empathy_tp_roomlist_new        (McAccount *account);
+EmpathyTpRoomlist *empathy_tp_roomlist_new        (EmpathyAccount *account);
 gboolean           empathy_tp_roomlist_is_listing (EmpathyTpRoomlist *list);
 void               empathy_tp_roomlist_start      (EmpathyTpRoomlist *list);
 void               empathy_tp_roomlist_stop       (EmpathyTpRoomlist *list);
index 47746f536c00951abbc274fb82e8b6088773b713..fd54c9a987115ee2bdc45c2e847483b796ff1d09 100644 (file)
@@ -193,7 +193,7 @@ empathy_xml_node_get_child_content (xmlNodePtr   node,
        if (l) {
                return xmlNodeGetContent (l);
        }
-               
+
        return NULL;
 }
 
@@ -220,35 +220,26 @@ empathy_xml_node_find_child_prop_value (xmlNodePtr   node,
                if (prop && strcmp (prop, prop_value) == 0) {
                        found = l;
                }
-               
+
                xmlFree (prop);
        }
-               
+
        return found;
 }
 
 guint
 empathy_account_hash (gconstpointer key)
 {
-       g_return_val_if_fail (MC_IS_ACCOUNT (key), 0);
+       g_return_val_if_fail (EMPATHY_IS_ACCOUNT (key), 0);
 
-       return g_str_hash (mc_account_get_unique_name (MC_ACCOUNT (key)));
+       return g_str_hash (empathy_account_get_unique_name (EMPATHY_ACCOUNT (key)));
 }
 
 gboolean
 empathy_account_equal (gconstpointer a,
                       gconstpointer b)
 {
-       const gchar *name_a;
-       const gchar *name_b;
-
-       g_return_val_if_fail (MC_IS_ACCOUNT (a), FALSE);
-       g_return_val_if_fail (MC_IS_ACCOUNT (b), FALSE);
-
-       name_a = mc_account_get_unique_name (MC_ACCOUNT (a));
-       name_b = mc_account_get_unique_name (MC_ACCOUNT (b));
-
-       return g_str_equal (name_a, name_b);
+  return a == b;
 }
 
 MissionControl *
index de1437b9dd93d095795c88998a6a2852e7b60fcd..42acbc8e3531c58d54b4f0a1289da07b269a9f16 100644 (file)
@@ -32,7 +32,6 @@
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mission-control.h>
 
 #include "empathy-contact.h"
index 0879e75a5dbad218c1822887d7a5a63382988284..2e4fb1e72ffeccc92d8df7c0cb7ef881a9510635 100644 (file)
 #include <gconf/gconf-client.h>
 
 #include <libmissioncontrol/mission-control.h>
-#include <libmissioncontrol/mc-account.h>
 
 #include <libempathy/empathy-tp-contact-factory.h>
 #include <libempathy/empathy-account-manager.h>
+#include <libempathy/empathy-dispatcher.h>
 #include <libempathy/empathy-contact.h>
 #include <libempathy/empathy-contact-list.h>
 #include <libempathy/empathy-contact-manager.h>
@@ -55,7 +55,7 @@
 typedef struct {
        EmpathyTpContactFactory *factory;
        EmpathyAccountManager   *account_manager;
-       McAccount               *account;
+       EmpathyAccount          *account;
        gchar                   *id;
        GtkWidget               *image;
        gint                     image_size;
@@ -194,7 +194,7 @@ megaphone_applet_got_contact_cb (EmpathyTpContactFactory *factory,
 static void
 megaphone_applet_new_connection_cb (EmpathyAccountManager *manager,
                                    TpConnection          *connection,
-                                   McAccount             *account,
+                                   EmpathyAccount        *account,
                                    MegaphoneApplet       *applet)
 {
        MegaphoneAppletPriv *priv = GET_PRIV (applet);
@@ -223,13 +223,13 @@ megaphone_applet_preferences_response_cb (GtkWidget       *dialog,
                contact_list = g_object_get_data (G_OBJECT (dialog), "contact-list");
                contact = empathy_contact_list_view_dup_selected (contact_list);
                if (contact) {
-                       McAccount   *account;
+                       EmpathyAccount   *account;
                        const gchar *account_id;
                        const gchar *contact_id;
                        gchar       *str;
 
                        account = empathy_contact_get_account (contact);
-                       account_id = mc_account_get_unique_name (account);
+                       account_id = empathy_account_get_unique_name (account);
                        contact_id = empathy_contact_get_id (contact);
 
                        str = g_strconcat (account_id, "/", contact_id, NULL);
@@ -300,7 +300,6 @@ megaphone_applet_button_press_event_cb (GtkWidget       *widget,
                                        MegaphoneApplet *applet)
 {
        MegaphoneAppletPriv *priv = GET_PRIV (applet);
-       MissionControl      *mc;
 
        /* Only react on left-clicks */
        if (event->button != 1 || event->type != GDK_BUTTON_PRESS) {
@@ -317,15 +316,8 @@ megaphone_applet_button_press_event_cb (GtkWidget       *widget,
                empathy_contact_get_id (priv->contact),
                empathy_contact_get_handle (priv->contact));
 
-       mc = empathy_mission_control_dup_singleton ();
-       mission_control_request_channel (mc,
-                                        empathy_contact_get_account (priv->contact),
-                                        TP_IFACE_CHANNEL_TYPE_TEXT,
-                                        empathy_contact_get_handle (priv->contact),
-                                        TP_HANDLE_TYPE_CONTACT,
-                                        NULL, NULL);
-       g_object_unref (mc);
-       
+       empathy_dispatcher_chat_with_contact (priv->contact, NULL, NULL);
+
        return TRUE;
 }
 
@@ -453,15 +445,15 @@ megaphone_applet_set_contact (MegaphoneApplet *applet,
        /* Lookup the new contact */
        if (str) {
                strv = g_strsplit (str, "/", 2);
-               priv->account = mc_account_lookup (strv[0]);
+               priv->account = empathy_account_manager_lookup (priv->account_manager, 
+                       strv[0]);
                priv->id = strv[1];
                g_free (strv[0]);
                g_free (strv);
        }
 
        if (priv->account) {
-               connection = empathy_account_manager_get_connection (
-                       priv->account_manager, priv->account);
+               connection = empathy_account_get_connection (priv->account);
                if (connection) {
                        megaphone_applet_new_connection_cb (priv->account_manager,
                                connection, priv->account, applet);
index 039fa077ce6279155076d2d0c2b39f776483d790..b1de6b5a52842b423332c85347a74324d1d88408 100644 (file)
@@ -41,6 +41,7 @@ nb
 ne
 nl
 oc
+or
 pa
 pl
 ps
index e80a29c67d2c908c9074dd234461dbea90af5a3c..cfd9215331d9dc6d2f0b023b61b518d7d85ef7ae 100644 (file)
@@ -40,6 +40,7 @@ libempathy-gtk/empathy-log-window.c
 [type: gettext/glade]libempathy-gtk/empathy-log-window.ui
 [type: gettext/glade]libempathy-gtk/empathy-new-message-dialog.ui
 libempathy-gtk/empathy-presence-chooser.c
+libempathy-gtk/empathy-sound.c
 libempathy-gtk/empathy-status-preset-dialog.c
 [type: gettext/glade]libempathy-gtk/empathy-status-preset-dialog.ui
 libempathy-gtk/empathy-theme-boxes.c
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..33c53b1e4583bbe774ba7ce304821a7e0383fb9e 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-23 10:10+0000\n"
+"PO-Revision-Date: 2009-06-27 15:03+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."
 
@@ -177,71 +176,85 @@ msgstr ""
 "Mostrar notificaciones emergentes si la ventana de chat no tiene el foco"
 
 #: ../data/empathy.schemas.in.h:36
+#| msgid "Popup notifications if the chat isn't focused"
+msgid "Popup notifications when a contact sign in"
+msgstr "Mostrar notificaciones emergentes cuando un contacto se conecta."
+
+#: ../data/empathy.schemas.in.h:37
+#| msgid "Popup notifications if the chat isn't focused"
+msgid "Popup notifications when a contact sign out"
+msgstr "Mostrar notificaciones emergentes cuando un contacto se desconecta."
+
+#: ../data/empathy.schemas.in.h:38
 msgid "Salut account is created"
 msgstr "Se creó la cuenta Salut"
 
-#: ../data/empathy.schemas.in.h:37
+#: ../data/empathy.schemas.in.h:39
 msgid "Show avatars"
 msgstr "Mostrar avatares"
 
-#: ../data/empathy.schemas.in.h:38
+#: ../data/empathy.schemas.in.h:40
+msgid "Show contact list in rooms"
+msgstr "Mostrar lista de contactos en salas"
+
+#: ../data/empathy.schemas.in.h:41
 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:42
 msgid "Show offline contacts"
 msgstr "Mostrar contactos no conectados"
 
-#: ../data/empathy.schemas.in.h:40
+#: ../data/empathy.schemas.in.h:43
 msgid "Spell checking languages"
 msgstr "Idiomas para revisión ortográfica"
 
-#: ../data/empathy.schemas.in.h:41
+#: ../data/empathy.schemas.in.h:44
 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:45
 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:46
 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:47
 msgid "Use graphical smileys"
 msgstr "Usar emoticonos gráficos"
 
-#: ../data/empathy.schemas.in.h:45
+#: ../data/empathy.schemas.in.h:48
 msgid "Use notification sounds"
 msgstr "Usar sonidos de notificación"
 
-#: ../data/empathy.schemas.in.h:46
+#: ../data/empathy.schemas.in.h:49
 msgid "Use theme for chat rooms"
 msgstr "Usar tema para salas de chat"
 
-#: ../data/empathy.schemas.in.h:47
+#: ../data/empathy.schemas.in.h:50
 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:51
 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:52
 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:53
 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:54
 msgid ""
 "Whether or not Empathy has asked about importing accounts from other "
 "programs."
@@ -249,7 +262,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:55
 msgid ""
 "Whether or not Empathy should automatically log in to your accounts on "
 "startup."
@@ -257,7 +270,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:56
 msgid ""
 "Whether or not Empathy should reduce the location's accuracy for privacy "
 "reasons."
@@ -265,7 +278,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:57
 msgid ""
 "Whether or not Empathy should use the avatar of the contact as the chat "
 "window icon."
@@ -273,14 +286,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:58
 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:59
 msgid ""
 "Whether or not the network manager should be used to automatically "
 "disconnect/reconnect."
@@ -288,7 +301,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:60
 msgid ""
 "Whether or not to check words typed against the languages you want to check "
 "with."
@@ -296,21 +309,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:61
 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:62
 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:63
 msgid ""
 "Whether or not to play a sound to notify for contacts logging off the "
 "network."
@@ -318,40 +331,54 @@ 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:64
 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:65
 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:66
 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:67
 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:68
 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:69
 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:70
 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:71
+#| msgid "Whether or not to show popup notifications when away or busy."
+msgid ""
+"Whether or not to show a popup notification when a contact goes offline."
+msgstr ""
+"Indica si se deben mostrar las notificaciones emergentes cuando un contacto "
+"se desconecta."
+
+#: ../data/empathy.schemas.in.h:72
+#| msgid "Whether or not to show popup notifications when away or busy."
+msgid "Whether or not to show a popup notification when a contact goes online."
+msgstr ""
+"Indica si se deben mostrar las notificaciones emergentes cuando se conecta."
+
+#: ../data/empathy.schemas.in.h:73
 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 +386,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:74
 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:75
 msgid ""
 "Whether or not to show avatars for contacts in the contact list and chat "
 "windows."
@@ -374,19 +401,23 @@ 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:76
 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:77
 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:78
+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:79
 msgid ""
 "Whether or not to show the message dialog about closing the main window with "
 "the 'x' button in the title bar."
@@ -394,15 +425,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:80
 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:81
 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:82
 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 +451,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 +545,19 @@ msgstr[1] "hace %d días"
 
 #: ../libempathy/empathy-time.c:157
 #, c-format
+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 +580,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>Avanzado</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 +617,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 +636,40 @@ 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 "Servers"
+msgstr "Servidores"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+msgid "Override server settings"
+msgstr "Sobreescribir los ajustes del servidor"
 
 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:5
 msgid "Pri_ority:"
@@ -735,96 +777,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 +1096,53 @@ 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 "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 "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 "Groups"
+msgstr "Grupos"
+
 #. Identifier to connect to Instant Messaging network
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:13
 msgid "Identifier:"
@@ -1216,12 +1259,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 +1585,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 +1613,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 +1625,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 +1635,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 +1647,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 +1679,31 @@ 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 "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 "Gmail"
+msgstr "Gmail"
+
+#: ../src/empathy-accounts-dialog.ui.h:5
 msgid "Import Accounts..."
 msgstr "Importar cuentas…"
 
+#: ../src/empathy-accounts-dialog.ui.h:6
+msgid "No protocol installed"
+msgstr "No hay protocolos instalados"
+
 #: ../src/empathy-accounts-dialog.ui.h:7
+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 +1711,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 +1731,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 +1806,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"
@@ -1793,75 +1831,75 @@ msgstr "Autoconectar"
 msgid "Manage Favorite Rooms"
 msgstr "Gestionar salas favoritas"
 
-#: ../src/empathy-event-manager.c:377
+#: ../src/empathy-event-manager.c:395
 msgid "Incoming call"
 msgstr "Llamada entrante"
 
-#: ../src/empathy-event-manager.c:380
+#: ../src/empathy-event-manager.c:398
 #, c-format
 msgid "%s is calling you, do you want to answer?"
 msgstr "%s le está llamando, ¿quiere responder?"
 
-#: ../src/empathy-event-manager.c:387
+#: ../src/empathy-event-manager.c:405
 msgid "_Reject"
 msgstr "_Rechazar"
 
-#: ../src/empathy-event-manager.c:393
+#: ../src/empathy-event-manager.c:411
 msgid "_Answer"
 msgstr "Re_spuesta"
 
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:523
 #, c-format
 msgid "Incoming call from %s"
 msgstr "Llamada entrante de %s"
 
-#: ../src/empathy-event-manager.c:547
+#: ../src/empathy-event-manager.c:563
 #, 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:569
 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:574
 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:701
 msgid "Room invitation"
 msgstr "Invitación a una sala"
 
-#: ../src/empathy-event-manager.c:688
+#: ../src/empathy-event-manager.c:704
 #, 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:712
 msgid "_Decline"
 msgstr "_Rechazar"
 
-#: ../src/empathy-event-manager.c:701
+#: ../src/empathy-event-manager.c:717
 #: ../src/empathy-new-chatroom-dialog.ui.h:7
 msgid "_Join"
 msgstr "_Unirse"
 
-#: ../src/empathy-event-manager.c:740
+#: ../src/empathy-event-manager.c:756
 #, 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:782
 #, 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:962
 #, 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:966
 #, c-format
 msgid ""
 "\n"
@@ -1870,6 +1908,18 @@ msgstr ""
 "\n"
 "Mensaje: %s"
 
+#. someone is logging off
+#: ../src/empathy-event-manager.c:1009
+#, c-format
+msgid "%s is now offline."
+msgstr "Ahora %s está desconectado."
+
+#. someone is logging in
+#: ../src/empathy-event-manager.c:1025
+#, c-format
+msgid "%s is now online."
+msgstr "Ahora %s está conectado."
+
 #. Translators: time left, when it is more than one hour
 #: ../src/empathy-ft-manager.c:101
 #, c-format
@@ -1974,7 +2024,7 @@ msgid "Remaining"
 msgstr "Restantes"
 
 #: ../src/empathy-ft-manager.ui.h:1
-msgid "File transfers"
+msgid "File Transfers"
 msgstr "Transferencias de archivos"
 
 #: ../src/empathy-ft-manager.ui.h:2
@@ -2068,15 +2118,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,199 +2263,205 @@ msgstr "Lista de salas"
 msgid "_Room:"
 msgstr "_Sala:"
 
-#: ../src/empathy-preferences.c:158
+#: ../src/empathy-preferences.c:161
 msgid "Message received"
 msgstr "Mensaje recibido"
 
-#: ../src/empathy-preferences.c:159
+#: ../src/empathy-preferences.c:162
 msgid "Message sent"
 msgstr "Mensaje enviado"
 
-#: ../src/empathy-preferences.c:160
+#: ../src/empathy-preferences.c:163
 msgid "New conversation"
 msgstr "Conversación nueva"
 
-#: ../src/empathy-preferences.c:161
+#: ../src/empathy-preferences.c:164
 msgid "Contact goes online"
 msgstr "El contacto se conecta"
 
-#: ../src/empathy-preferences.c:162
+#: ../src/empathy-preferences.c:165
 msgid "Contact goes offline"
 msgstr "El contacto se desconecta"
 
-#: ../src/empathy-preferences.c:163
+#: ../src/empathy-preferences.c:166
 msgid "Account connected"
 msgstr "Cuenta conectada"
 
-#: ../src/empathy-preferences.c:164
+#: ../src/empathy-preferences.c:167
 msgid "Account disconnected"
 msgstr "Cuenta desconectada"
 
-#: ../src/empathy-preferences.c:427
+#: ../src/empathy-preferences.c:446
 msgid "Language"
 msgstr "Idioma"
 
 #: ../src/empathy-preferences.ui.h:1
-msgid "<b>Appearance</b>"
-msgstr "<b>Apariencia</b>"
+msgid "Adium theme to use:"
+msgstr "Tema adium que usar:"
 
 #: ../src/empathy-preferences.ui.h:2
-msgid "<b>Behavior</b>"
-msgstr "<b>Comportamiento</b>"
+msgid "Allow _GPS usage"
+msgstr "Permitir el usso de _GPS"
 
 #: ../src/empathy-preferences.ui.h:3
-msgid "<b>Contact List</b>"
-msgstr "<b>Lista de contactos</b>"
+msgid "Allow _cellphone usage"
+msgstr "Permitir el uso de teléfono _móvil"
 
 #: ../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>"
+msgid "Allow _network usage"
+msgstr "Permitir el uso de la _red"
 
 #: ../src/empathy-preferences.ui.h:5
-msgid "<b>Geoclue Settings</b>"
-msgstr "<b>Configuración de Geoclue</b>"
+msgid "Appearance"
+msgstr "Apariencia"
 
 #: ../src/empathy-preferences.ui.h:6
-msgid "<b>Play sound for events</b>"
-msgstr "<b>Reproducir sonido para eventos</b>"
+msgid "Automatically _connect on startup "
+msgstr "_Conectarse automáticamente al inicio"
 
 #: ../src/empathy-preferences.ui.h:7
-msgid "<b>Privacy</b>"
-msgstr "<b>Privacidad</b>"
+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: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>"
+msgid "Behavior"
+msgstr "Comportamiento"
 
 #: ../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>"
+msgid "Chat Th_eme:"
+msgstr "_Tema del chat:"
 
 #: ../src/empathy-preferences.ui.h:11
-msgid "Adium theme to use:"
-msgstr "Tema adium que usar:"
+msgid "Disable notifications when _away or busy"
+msgstr "Desactivar notificaciones al _ausentarse o estar ocupado"
 
 #: ../src/empathy-preferences.ui.h:12
-msgid "Allow _GPS usage"
-msgstr "Permitir el usso de _GPS"
+msgid "Disable sounds when _away or busy"
+msgstr "Desactivar sonidos al _ausentarse o estar ocupado"
 
 #: ../src/empathy-preferences.ui.h:13
-msgid "Allow _cellphone usage"
-msgstr "Permitir el uso de teléfono _móvil"
+#| msgid "Enable notifications when the _chat is not focused"
+msgid "Enable notifications when a contact comes online"
+msgstr "Activar notificaciones cuando un contacto se conecta"
 
 #: ../src/empathy-preferences.ui.h:14
-msgid "Allow _network usage"
-msgstr "Permitir el uso de la _red"
+#| msgid "Enable notifications when the _chat is not focused"
+msgid "Enable notifications when a contact goes offline"
+msgstr "Activar notificaciones cuando un contacto se desconecta"
 
 #: ../src/empathy-preferences.ui.h:15
-msgid "Automatically _connect on startup "
-msgstr "_Conectarse automáticamente al inicio"
+msgid "Enable notifications when the _chat is not focused"
+msgstr "Activar notificaciones cuando el _chat no tenga el foco"
 
 #: ../src/empathy-preferences.ui.h:16
-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"
+msgid "Enable spell checking for languages:"
+msgstr "Activar la revisión ortográfica para idiomas:"
 
 #: ../src/empathy-preferences.ui.h:17
-msgid "Chat Th_eme:"
-msgstr "_Tema del chat:"
+msgid "General"
+msgstr "General"
 
 #: ../src/empathy-preferences.ui.h:18
-msgid "Disable notifications when _away or busy"
-msgstr "Desactivar notificaciones al _ausentarse o estar ocupado"
+msgid "Geoclue Settings"
+msgstr "Configuración de Geoclue"
 
 #: ../src/empathy-preferences.ui.h:19
-msgid "Disable sounds when _away or busy"
-msgstr "Desactivar sonidos al _ausentarse o estar ocupado"
+msgid "Location"
+msgstr "Ubicación"
 
 #: ../src/empathy-preferences.ui.h:20
-msgid "Enable notifications when the _chat is not focused"
-msgstr "Activar notificaciones cuando el _chat no tenga el foco"
+msgid "Not a valid adium theme"
+msgstr "No es un tema adium válido"
 
 #: ../src/empathy-preferences.ui.h:21
-msgid "General"
-msgstr "General"
+msgid "Notifications"
+msgstr "Notificaciones"
 
 #: ../src/empathy-preferences.ui.h:22
-msgid "Location"
-msgstr "Ubicación"
+msgid "Play sound for events"
+msgstr "Reproducir sonido para eventos"
 
 #: ../src/empathy-preferences.ui.h:23
-msgid "Notifications"
-msgstr "Notificaciones"
-
-#: ../src/empathy-preferences.ui.h:24
 msgid "Preferences"
 msgstr "Preferencias"
 
+#: ../src/empathy-preferences.ui.h:24
+msgid "Privacy"
+msgstr "Privacidad"
+
 #: ../src/empathy-preferences.ui.h:25
+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:26
 msgid "Show _avatars"
 msgstr "Mostrar _avatares"
 
-#: ../src/empathy-preferences.ui.h:26
+#: ../src/empathy-preferences.ui.h:27
 msgid "Show _smileys as images"
 msgstr "Mostrar los _emoticonos como imágenes"
 
-#: ../src/empathy-preferences.ui.h:27
+#: ../src/empathy-preferences.ui.h:28
 msgid "Show co_mpact contact list"
 msgstr "Mostrar lista de contactos co_mpacta"
 
-#: ../src/empathy-preferences.ui.h:28
+#: ../src/empathy-preferences.ui.h:29
+msgid "Show contact _list in rooms"
+msgstr "Mostrar _lista de contactos en salas"
+
+#: ../src/empathy-preferences.ui.h:30
 msgid "Sort by _name"
 msgstr "Ordenar por _nombre"
 
-#: ../src/empathy-preferences.ui.h:29
+#: ../src/empathy-preferences.ui.h:31
 msgid "Sort by s_tate"
 msgstr "Ordenar por es_tado"
 
-#: ../src/empathy-preferences.ui.h:30
+#: ../src/empathy-preferences.ui.h:32
 msgid "Sounds"
 msgstr "Sonidos"
 
-#: ../src/empathy-preferences.ui.h:31
+#: ../src/empathy-preferences.ui.h:33
 msgid "Spell Checking"
 msgstr "Revisión ortográfica"
 
-#: ../src/empathy-preferences.ui.h:32
-msgid "Sélectionner un dossier"
-msgstr "Seleccionar una carpeta"
+#: ../src/empathy-preferences.ui.h:34
+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
+#: ../src/empathy-preferences.ui.h:35
 msgid "Themes"
 msgstr "Temas"
 
-#: ../src/empathy-preferences.ui.h:34
+#: ../src/empathy-preferences.ui.h:36
 msgid "_Enable bubble notifications"
 msgstr "_Activar notificaciones de burbuja"
 
-#: ../src/empathy-preferences.ui.h:35
+#: ../src/empathy-preferences.ui.h:37
 msgid "_Enable sound notifications"
 msgstr "_Activar notificaciones de sonido"
 
-#: ../src/empathy-preferences.ui.h:36
+#: ../src/empathy-preferences.ui.h:38
 msgid "_Open new chats in separate windows"
 msgstr "_Abrir charlas nuevas en ventanas separadas"
 
-#: ../src/empathy-preferences.ui.h:37
+#: ../src/empathy-preferences.ui.h:39
 msgid "_Publish location to my contacts"
 msgstr "_Publicar mi ubicación a mis contactos"
 
-#: ../src/empathy-preferences.ui.h:38
+#: ../src/empathy-preferences.ui.h:40
 msgid "_Reduce location accuracy"
 msgstr "_Reducir la precisión de la ubicación"
 
@@ -2512,6 +2564,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 bcf2614ffe72459a90e44a25696a36e3f46761ed..ccc76d8cc4885f0b975b8f79fcbb70ac25f79906 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -1,30 +1,28 @@
 # translation of empathy to Lithuanian
-# Copyright (C) 2004-2007, 2008 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gossip package.
+# Copyright (C) 2004-2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the empathy package.
 #
 #
 # Justina Klingaitė <justina.klingaite@gmail.com>, 2006.
 # Gintautas Miliauskas <gintas@akl.lt>, 2006.
-# Žygimantas Beručka <zygis@gnome.org>, 2004-2007.
+# Žygimantas Beručka <zygis@gnome.org>, 2004-2007, 2009.
 # Saulius <saulius.shopaga@gmail.com>, 2008, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: empathy.HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-07 17:07+0200\n"
-"PO-Revision-Date: 2009-03-07 17:07+0200\n"
-"Last-Translator: Saulius <saulius.shopaga@gmail.com>\n"
-"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"POT-Creation-Date: 2009-06-29 14:20+0300\n"
+"PO-Revision-Date: 2009-06-29 20:10+0300\n"
+"Last-Translator: Žygimantas Beručka <zygis@gnome.org>\n"
+"Language-Team: Lithuanian <gnome-lt@lists.akl.lt>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 0.2\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: ../data/empathy.desktop.in.in.h:1
 msgid "Empathy Instant Messenger"
-msgstr "Bendravimas žinutėmis"
+msgstr "Pokalbių programa Empathy"
 
 #: ../data/empathy.desktop.in.in.h:2
 msgid "Send and receive instant messages"
@@ -39,8 +37,8 @@ msgid ""
 "Character to add after nickname when using nick completion (tab) in group "
 "chat."
 msgstr ""
-"Simbolis po slapyvardžio naudojant slapyvardžio užbaigimą (tab) grupės "
-"pokalbiuose"
+"Po slapyvardžio pridėtinas simbolis, naudojant slapyvardžio užbaigimą (tab) "
+"grupės pokalbiuose."
 
 #: ../data/empathy.schemas.in.h:3
 msgid "Chat window theme"
@@ -54,251 +52,332 @@ msgstr ""
 
 #: ../data/empathy.schemas.in.h:5
 msgid "Compact contact list"
-msgstr "Kompaktiškas bičiulių sąrašas"
+msgstr "Kompaktiškas adresatų sąrašas"
 
 #: ../data/empathy.schemas.in.h:6
 msgid "Contact list sort criterium"
-msgstr "Bičiulių sąrašo rikiavimo požymis"
+msgstr "Adresatų sąrašo rikiavimo kriterijus"
 
 #: ../data/empathy.schemas.in.h:7
 msgid "Default directory to select an avatar image from"
-msgstr "Numatytasis aplankas, iš kurio renkamas paveikslėlis"
+msgstr ""
+"Numatytasis aplankas, iš kurio pasirinktinas pseudoportreto paveikslėlis"
 
 #: ../data/empathy.schemas.in.h:8
 msgid "Disable popup notifications when away"
-msgstr "Išjungti pranešimų iškylančius langus, kai manęs nėra"
+msgstr "Išjungti iškylančius pranešimų langus, kai manęs nėra"
 
 #: ../data/empathy.schemas.in.h:9
 msgid "Disable sounds when away"
 msgstr "Išjungti garsus, kai manęs nėra"
 
 #: ../data/empathy.schemas.in.h:10
-msgid "Empathy default download folder"
-msgstr "Numatytasis aplankas atsisiuntimams"
+msgid "Empathy can publish the user's location"
+msgstr "Empathy gali rodyti naudotojo vietovę"
 
 #: ../data/empathy.schemas.in.h:11
-msgid "Empathy has asked about importing accounts"
-msgstr "Programa užklausė dėl paskyrų importo"
+msgid "Empathy can use the GPS to guess the location"
+msgstr "Empathy gali naudoti GPS, siekiant atspėti vietovę"
 
 #: ../data/empathy.schemas.in.h:12
-msgid "Empathy should auto-connect on startup"
-msgstr "Prie kurios paskyros prisijungti paleidimo metu"
+msgid "Empathy can use the cellular network to guess the location"
+msgstr "Empathy naudoti mobiliojo ryšio tinklą, siekiant atspėti vietovę"
 
 #: ../data/empathy.schemas.in.h:13
-msgid "Empathy should use the avatar of the contact as the chat window icon"
-msgstr "Bičiulio paveikslėlis bus ir pokalbio lango ženkliuku"
+msgid "Empathy can use the network to guess the location"
+msgstr "Empathy gali naudoti tinklą, siekiant atspėti vietovę"
 
 #: ../data/empathy.schemas.in.h:14
-msgid "Enable popup notifications for new messages"
-msgstr "Įjungti iškylančius langus pranešimams apie naujas žinutes"
+msgid "Empathy default download folder"
+msgstr "Numatytasis Empathy atsiuntimo aplankas"
 
 #: ../data/empathy.schemas.in.h:15
+msgid "Empathy has asked about importing accounts"
+msgstr "Empathy klausė apie paskyrų importavimą"
+
+#: ../data/empathy.schemas.in.h:16
+msgid "Empathy should auto-connect on startup"
+msgstr "Paleidus Empathy, ji turėtų automatiškai prisijungti"
+
+#: ../data/empathy.schemas.in.h:17
+msgid "Empathy should reduce the location's accuracy"
+msgstr "Empathy turėtų sumažinti vietovės tikslumą"
+
+#: ../data/empathy.schemas.in.h:18
+msgid "Empathy should use the avatar of the contact as the chat window icon"
+msgstr ""
+"Empathy turėtų naudoti adresato pseudoportretą pokalbio lango piktogramai"
+
+#: ../data/empathy.schemas.in.h:19
+msgid "Enable popup notifications for new messages"
+msgstr "Įjungti iškylančius pranešimus apie naujas žinutes"
+
+#: ../data/empathy.schemas.in.h:20
 msgid "Enable spell checker"
 msgstr "Įjungti rašybos tikrinimą"
 
-#: ../data/empathy.schemas.in.h:16
+#: ../data/empathy.schemas.in.h:21
 msgid "Hide main window"
 msgstr "Paslėpti pagrindinį langą"
 
-#: ../data/empathy.schemas.in.h:17
+#: ../data/empathy.schemas.in.h:22
 msgid "Hide the main window."
 msgstr "Paslėpti pagrindinį langą."
 
-#: ../data/empathy.schemas.in.h:18
+#: ../data/empathy.schemas.in.h:23
 msgid "NetworkManager should be used"
 msgstr "Naudoti NetworkManager"
 
-#: ../data/empathy.schemas.in.h:19
+#: ../data/empathy.schemas.in.h:24
 msgid "Nick completed character"
 msgstr "Slapyvardžio užbaigimo simbolis"
 
-#: ../data/empathy.schemas.in.h:20
+#: ../data/empathy.schemas.in.h:25
 msgid "Open new chats in separate windows"
-msgstr "Atverti pokalbius atskiruose languose"
+msgstr "Atverti naujus pokalbius atskiruose languose"
 
-#: ../data/empathy.schemas.in.h:21
+#: ../data/empathy.schemas.in.h:26
+msgid "Path of the adium theme to use"
+msgstr "Naudotinos adium temos kelias"
+
+#: ../data/empathy.schemas.in.h:27
+msgid "Path of the adium theme to use if the theme used for chat is adium."
+msgstr "Naudotinos adium temos kelias, jei pokalbiui naudojama tema yra adium."
+
+#: ../data/empathy.schemas.in.h:28
 msgid "Play a sound for incoming messages"
 msgstr "Gavus žinutę sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:22
+#: ../data/empathy.schemas.in.h:29
 msgid "Play a sound for new conversations"
-msgstr "Pradedant pokalbį sugroti garsą"
+msgstr "Pradedant naują pokalbį sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:23
+#: ../data/empathy.schemas.in.h:30
 msgid "Play a sound for outgoing messages"
-msgstr "Išsiunčiant žinutę sugroti garsą"
+msgstr "Išsiunčiant žinutes sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:24
+#: ../data/empathy.schemas.in.h:31
 msgid "Play a sound when a contact logs in"
-msgstr "Prisijungus bičiuliui sugroti garsą"
+msgstr "Prisijungus adresatui sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:25
+#: ../data/empathy.schemas.in.h:32
 msgid "Play a sound when a contact logs out"
-msgstr "Atsijungus bičiuliui sugroti garsą"
+msgstr "Atsijungus adresatui sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:26
+#: ../data/empathy.schemas.in.h:33
 msgid "Play a sound when we log in"
-msgstr "Prisijungus sugroti garsą"
+msgstr "Jums prisijungus sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:27
+#: ../data/empathy.schemas.in.h:34
 msgid "Play a sound when we log out"
-msgstr "Atsijungus sugroti garsą"
+msgstr "Jums atsijungus sugroti garsą"
 
-#: ../data/empathy.schemas.in.h:28
+#: ../data/empathy.schemas.in.h:35
 msgid "Popup notifications if the chat isn't focused"
-msgstr "Iškylančio lango pranešimas apie pokalbį neaktyviame lange"
+msgstr "Rodyti iškylančius pranešimus, jei pokalbio langas nesuaktyvintas"
 
-#: ../data/empathy.schemas.in.h:29
+#: ../data/empathy.schemas.in.h:36
+msgid "Popup notifications when a contact sign in"
+msgstr "Rodyti iškylančius pranešimus, kai adresatas prisijungia"
+
+#: ../data/empathy.schemas.in.h:37
+msgid "Popup notifications when a contact sign out"
+msgstr "Rodyti iškylančius pranešimus, kai adresatas atsijungia"
+
+#: ../data/empathy.schemas.in.h:38
 msgid "Salut account is created"
 msgstr "Salut paskyra sukurta"
 
-#: ../data/empathy.schemas.in.h:30
+#: ../data/empathy.schemas.in.h:39
 msgid "Show avatars"
-msgstr "Rodyti bičiulių paveikslėlius"
+msgstr "Rodyti pseudoportretus"
 
-#: ../data/empathy.schemas.in.h:31
+#: ../data/empathy.schemas.in.h:40
+msgid "Show contact list in rooms"
+msgstr "Rodyti adresatų sąrašą kambariuose"
+
+#: ../data/empathy.schemas.in.h:41
 msgid "Show hint about closing the main window"
 msgstr "Perspėti apie pagrindinio lango užvėrimą"
 
-#: ../data/empathy.schemas.in.h:32
+#: ../data/empathy.schemas.in.h:42
 msgid "Show offline contacts"
-msgstr "Rodyti atsijungusius bičiulius"
+msgstr "Rodyti atsijungusius adresatus"
 
-#: ../data/empathy.schemas.in.h:33
+#: ../data/empathy.schemas.in.h:43
 msgid "Spell checking languages"
-msgstr "Kalbų rašybos tikrinimas"
+msgstr "Kalbos, kurių rašyba tikrinama"
 
-#: ../data/empathy.schemas.in.h:34
+#: ../data/empathy.schemas.in.h:44
 msgid "The default folder to save file transfers in."
-msgstr "Numatytasis aplankas atsisiunčiamiems failams"
+msgstr "Numatytasis aplankas, kuriame įrašomi atsiųsti failai."
 
-#: ../data/empathy.schemas.in.h:35
+#: ../data/empathy.schemas.in.h:45
 msgid "The last directory that an avatar image was chosen from."
-msgstr "Aplankas, iš kurio praeitą kartą buvo pasirinktas paveikslėlis."
+msgstr "Aplankas, kuriame praeitą kartą buvo pasirinktas pseudoportretas."
 
-#: ../data/empathy.schemas.in.h:36
+#: ../data/empathy.schemas.in.h:46
 msgid "The theme that is used to display the conversation in chat windows."
-msgstr "Tema naudojama pokalbio rodymui pokalbių lange."
+msgstr "Tema, naudojama pokalbio rodymui pokalbių languose."
 
-#: ../data/empathy.schemas.in.h:37
+#: ../data/empathy.schemas.in.h:47
 msgid "Use graphical smileys"
 msgstr "Naudoti grafines šypsenėles"
 
-#: ../data/empathy.schemas.in.h:38
+#: ../data/empathy.schemas.in.h:48
 msgid "Use notification sounds"
-msgstr "Naudoti įspėjimo garsus"
+msgstr "Naudoti pranešimų garsus"
 
-#: ../data/empathy.schemas.in.h:39
+#: ../data/empathy.schemas.in.h:49
 msgid "Use theme for chat rooms"
 msgstr "Naudoti temą pokalbių kambariams"
 
-#: ../data/empathy.schemas.in.h:40
+#: ../data/empathy.schemas.in.h:50
+msgid "Whether or not Empathy can publish the user's location to his contacts."
+msgstr "Ar Empathy gali rodyti naudotojo vietovę jo adresatams."
+
+#: ../data/empathy.schemas.in.h:51
+msgid "Whether or not Empathy can use the GPS to guess the location."
+msgstr "Ar Empathy gali naudoti GPS vietovės spėjimui."
+
+#: ../data/empathy.schemas.in.h:52
+msgid ""
+"Whether or not Empathy can use the cellular network to guess the location."
+msgstr "Ar Empathy gali naudoti mobiliojo ryšio tinklą vietovės spėjimui."
+
+#: ../data/empathy.schemas.in.h:53
+msgid "Whether or not Empathy can use the network to guess the location."
+msgstr "Ar Empathy gali naudoti tinklą vietovės spėjimui."
+
+#: ../data/empathy.schemas.in.h:54
 msgid ""
 "Whether or not Empathy has asked about importing accounts from other "
 "programs."
-msgstr "Ar buvo užklausta dėl paskyrų importo iš kitų programų."
+msgstr "Ar Empathy klausė apie paskyrų importavimą iš kitų programų."
 
-#: ../data/empathy.schemas.in.h:41
+#: ../data/empathy.schemas.in.h:55
 msgid ""
 "Whether or not Empathy should automatically log in to your accounts on "
 "startup."
-msgstr "Ar prisijungti prie paskyrų pradedant darbą"
+msgstr ""
+"Ar Empathy turėtų automatiškai prisijungti prie paskyrų ją paleidus."
 
-#: ../data/empathy.schemas.in.h:42
+#: ../data/empathy.schemas.in.h:56
+msgid ""
+"Whether or not Empathy should reduce the location's accuracy for privacy "
+"reasons."
+msgstr ""
+"Ar Empathy turėtų sumažinti vietovės rodymo tikslumą privatumo sumetimais."
+
+#: ../data/empathy.schemas.in.h:57
 msgid ""
 "Whether or not Empathy should use the avatar of the contact as the chat "
 "window icon."
-msgstr "Ar pašnekovo paveikslėlį naudoti ir kaip pokalbio lango ženkliuką ."
+msgstr "Ar naudoti adresato pseudoportretą kaip pokalbio lango piktogramą."
 
-#: ../data/empathy.schemas.in.h:43
+#: ../data/empathy.schemas.in.h:58
 msgid ""
 "Whether or not the Salut account has been created on the first Empathy run."
-msgstr "Ar pirmos paleisties metu sukurti Salut paskyrą"
+msgstr "Ar pirmąkart paleidus Empathy buvo sukurta Salut paskyra."
 
-#: ../data/empathy.schemas.in.h:44
+#: ../data/empathy.schemas.in.h:59
 msgid ""
 "Whether or not the network manager should be used to automatically "
 "disconnect/reconnect."
-msgstr "Ar naudoti tinklo tvarkyklę automatiškai atjungiant/vėl prijungiant"
+msgstr "Ar naudoti tinklo valdyklę automatiškai atsijungiant/vėl prisijungiant."
 
-#: ../data/empathy.schemas.in.h:45
+#: ../data/empathy.schemas.in.h:60
 msgid ""
 "Whether or not to check words typed against the languages you want to check "
 "with."
-msgstr "Ar tikrinti žodžių rašybą pagal pasirinktą kalbą."
+msgstr ""
+"Ar tikrinti įvedamų žodžių rašybą pasirenkant jūsų pageidaujamas kalbas."
 
-#: ../data/empathy.schemas.in.h:46
+#: ../data/empathy.schemas.in.h:61
 msgid ""
 "Whether or not to convert smileys into graphical images in conversations."
-msgstr "Ar pokalbiuose paversti šypsenėles į grafinius paveiksliukus."
+msgstr "Ar pokalbiuose versti šypsenėles į grafinius paveikslėlius."
 
-#: ../data/empathy.schemas.in.h:47
+#: ../data/empathy.schemas.in.h:62
 msgid ""
 "Whether or not to play a sound to notify for contacts logging in the network."
-msgstr "Ar groti garsą prisijungiant bičiuliams."
+msgstr "Ar sugroti garsą adresatams prisijungiant prie tinklo."
 
-#: ../data/empathy.schemas.in.h:48
+#: ../data/empathy.schemas.in.h:63
 msgid ""
 "Whether or not to play a sound to notify for contacts logging off the "
 "network."
-msgstr "Ar groti garsą atsijungiant bičiuliams."
+msgstr "Ar sugroti garsą adresatams atsijungiant nuo tinklo."
 
-#: ../data/empathy.schemas.in.h:49
+#: ../data/empathy.schemas.in.h:64
 msgid "Whether or not to play a sound to notify for events."
 msgstr "Ar sugroti garsą pranešant apie įvykius."
 
-#: ../data/empathy.schemas.in.h:50
+#: ../data/empathy.schemas.in.h:65
 msgid "Whether or not to play a sound to notify for incoming messages."
 msgstr "Ar sugroti garsą, kai atsiunčiama nauja žinutė."
 
-#: ../data/empathy.schemas.in.h:51
+#: ../data/empathy.schemas.in.h:66
 msgid "Whether or not to play a sound to notify for new conversations."
 msgstr "Ar sugroti garsą pranešant apie naują pokalbį."
 
-#: ../data/empathy.schemas.in.h:52
+#: ../data/empathy.schemas.in.h:67
 msgid "Whether or not to play a sound to notify for outgoing messages."
 msgstr "Ar sugroti garsą, kai išsiunčiama žinutė."
 
-#: ../data/empathy.schemas.in.h:53
+#: ../data/empathy.schemas.in.h:68
 msgid "Whether or not to play a sound when logging in a network."
-msgstr "Ar groti garsą prisijungiant."
+msgstr "Ar groti garsą prisijungiant prie tinklo."
 
-#: ../data/empathy.schemas.in.h:54
+#: ../data/empathy.schemas.in.h:69
 msgid "Whether or not to play a sound when logging off a network."
-msgstr "Ar groti garsą atsijungiant."
+msgstr "Ar groti garsą atsijungiant nuo tinklo."
 
-#: ../data/empathy.schemas.in.h:55
+#: ../data/empathy.schemas.in.h:70
 msgid "Whether or not to play sound notifications when away or busy."
-msgstr "Ar groti garsinius pranešimus, kai tavęs nėra ar užsiėmęs."
+msgstr "Ar groti garsinius pranešimus, kai esate pasitraukę ar užsiėmę."
 
-#: ../data/empathy.schemas.in.h:56
+#: ../data/empathy.schemas.in.h:71
+msgid ""
+"Whether or not to show a popup notification when a contact goes offline."
+msgstr "Ar rodyti iškeliamą pranešimą, kai adresatas atsijungia."
+
+#: ../data/empathy.schemas.in.h:72
+msgid "Whether or not to show a popup notification when a contact goes online."
+msgstr "Ar rodyti iškeliamą pranešimą, kai adresatas prisijungia."
+
+#: ../data/empathy.schemas.in.h:73
 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 ""
-"Ar rodyti iškylantį pranešimo langą gauvus žinutę pradėtame pokalbyje, jei "
-"pokalbio langas neaktyvuotas."
+"Ar rodyti iškylantį pranešimo langą, kai gaunama nauja žinutė, net jei "
+"pokalbio langas yra jau atvertas, tačiau nesuaktyvintas."
 
-#: ../data/empathy.schemas.in.h:57
+#: ../data/empathy.schemas.in.h:74
 msgid ""
 "Whether or not to show a popup notification when receiving a new message."
-msgstr "Ar rodyti iškylantį pranešimo langą gavus naują žinutę."
+msgstr "Ar rodyti iškylantį pranešimą gavus naują žinutę."
 
-#: ../data/empathy.schemas.in.h:58
+#: ../data/empathy.schemas.in.h:75
 msgid ""
 "Whether or not to show avatars for contacts in the contact list and chat "
 "windows."
-msgstr "Ar rodyti bičiulių paveikslėlius kontaktų sąraše ir pokalbių languose."
+msgstr "Ar rodyti adresatų sąraše ir pokalbių languose pseudoportretus."
 
-#: ../data/empathy.schemas.in.h:59
+#: ../data/empathy.schemas.in.h:76
 msgid "Whether or not to show contacts that are offline in the contact list."
-msgstr "Ar bičiulių sąraše rodyti bičiulius, kurie yra atsijungę."
+msgstr "Ar adresatų sąraše rodyti adresatus, kurie yra atsijungę."
 
-#: ../data/empathy.schemas.in.h:60
+#: ../data/empathy.schemas.in.h:77
 msgid "Whether or not to show popup notifications when away or busy."
-msgstr "Ar rodyti iškylančius pranešimo langus, kai tavęs nėra ar užsiėmęs."
+msgstr "Ar rodyti iškylančius pranešimus, kai esate pasitraukę ar užsiėmę."
 
-#: ../data/empathy.schemas.in.h:61
+#: ../data/empathy.schemas.in.h:78
+msgid "Whether or not to show the contact list in chat rooms."
+msgstr "Ar rodyti adresatų sąrašą pokalbių kambariuose."
+
+#: ../data/empathy.schemas.in.h:79
 msgid ""
 "Whether or not to show the message dialog about closing the main window with "
 "the 'x' button in the title bar."
@@ -306,740 +385,950 @@ msgstr ""
 "Ar rodyti pranešimo apie pagrindinio lango uždarymą dialogą su mygtuku „x“ "
 "antraštės juostoje."
 
-#: ../data/empathy.schemas.in.h:62
+#: ../data/empathy.schemas.in.h:80
 msgid "Whether to show the contact list in compact mode or not."
-msgstr "Ar bičiulių sąrašą rodyti glaudintą."
+msgstr "Ar adresatų sąrašą rodyti glaudintą."
 
-#: ../data/empathy.schemas.in.h:63
+#: ../data/empathy.schemas.in.h:81
 msgid "Whether to use the theme for chat rooms or not."
 msgstr "Ar naudoti temą pokalbių kambariams."
 
-#: ../data/empathy.schemas.in.h:64
+#: ../data/empathy.schemas.in.h:82
 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 ""
-"Pagal kurį požymį rikiuoti bičiulių sąrašą. Numatytasis požymis yra bičiulio "
-"vardas (reikšmė „vardas“). Reikšmė „būsena“ rikiuos bičiulių sąrašą pagal "
+"Pagal kurį kriterijų rikiuoti adresatų sąrašą. Numatytasis yra adresato "
+"vardas (reikšmė „name“). Reikšmė „state“ rikiuoja adresatų sąrašą pagal "
 "būseną."
 
-#: ../libempathy/empathy-tp-contact-list.c:731 ../src/empathy.c:270
+#: ../libempathy/empathy-ft-handler.c:838
+msgid "The hash of the received file and the sent one do not match"
+msgstr "Gautojo ir išsiųstojo failo maišos kodai nesutampa"
+
+#: ../libempathy/empathy-ft-handler.c:1098
+msgid "File transfer not supported by remote contact"
+msgstr "Nutolęs adresatas nepalaiko failų siuntimo"
+
+#: ../libempathy/empathy-ft-handler.c:1156
+msgid "The selected file is not a regular file"
+msgstr "Pasirinktas failas nėra normalus failas"
+
+#: ../libempathy/empathy-ft-handler.c:1165
+msgid "The selected file is empty"
+msgstr "Pasirinktas failas yra tuščias"
+
+#: ../libempathy/empathy-tp-contact-list.c:757 ../src/empathy.c:288
 msgid "People nearby"
 msgstr "Žmonės netoliese"
 
-#: ../libempathy/empathy-utils.c:252
+#: ../libempathy/empathy-tp-file.c:279
+msgid "Socket type not supported"
+msgstr "Nepalaikomas lizdo tipas"
+
+#: ../libempathy/empathy-tp-file.c:398
+msgid "No reason was specified"
+msgstr "Nenurodyta priežastis"
+
+#: ../libempathy/empathy-tp-file.c:401
+msgid "The change in state was requested"
+msgstr "Būsenos keitimo užklausa"
+
+#: ../libempathy/empathy-tp-file.c:404
+msgid "You canceled the file transfer"
+msgstr "Atšaukėte failo siuntimą"
+
+#: ../libempathy/empathy-tp-file.c:407
+msgid "The other participant canceled the file transfer"
+msgstr "Kitas dalyvis atšaukė failo siuntimą"
+
+#: ../libempathy/empathy-tp-file.c:410
+msgid "Error while trying to transfer the file"
+msgstr "Klaida bandant persiųsti failą"
+
+#: ../libempathy/empathy-tp-file.c:413
+msgid "The other participant is unable to transfer the file"
+msgstr "Kitas dalyvis negali persiųsti failo"
+
+#: ../libempathy/empathy-tp-file.c:416
+msgid "Unknown reason"
+msgstr "Nežinoma priežastis"
+
+#: ../libempathy/empathy-utils.c:274
 msgid "Available"
 msgstr "Esu"
 
-#: ../libempathy/empathy-utils.c:254
+#: ../libempathy/empathy-utils.c:276
 msgid "Busy"
-msgstr "Užsiėmęs"
+msgstr "Užsiėmęs(-usi)"
 
-#: ../libempathy/empathy-utils.c:257
+#: ../libempathy/empathy-utils.c:279
 msgid "Away"
-msgstr "Manęs nėra."
+msgstr "Pasitraukęs(-usi)"
 
-#: ../libempathy/empathy-utils.c:259
+#: ../libempathy/empathy-utils.c:281
 msgid "Hidden"
-msgstr "Nematomas"
+msgstr "Pasislėpęs(-usi)"
 
-#: ../libempathy/empathy-utils.c:262
+#: ../libempathy/empathy-utils.c:283
 msgid "Offline"
-msgstr "Atsijungęs"
+msgstr "Atsijungęs(-usi)"
+
+#: ../libempathy/empathy-time.c:137
+#, c-format
+msgid "%d second ago"
+msgid_plural "%d seconds ago"
+msgstr[0] "prieš %d sekundę"
+msgstr[1] "prieš %d sekundes"
+msgstr[2] "prieš %d sekundžių"
+
+#: ../libempathy/empathy-time.c:142
+#, c-format
+msgid "%d minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] "prieš %d minutę"
+msgstr[1] "prieš %d minutes"
+msgstr[2] "prieš %d minučių"
+
+#: ../libempathy/empathy-time.c:147
+#, c-format
+msgid "%d hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] "prieš %d valandą"
+msgstr[1] "prieš %d valandas"
+msgstr[2] "prieš %d valandų"
+
+#: ../libempathy/empathy-time.c:152
+#, c-format
+msgid "%d day ago"
+msgid_plural "%d days ago"
+msgstr[0] "prieš %d dieną"
+msgstr[1] "prieš %d dienas"
+msgstr[2] "prieš %d dienų"
+
+#: ../libempathy/empathy-time.c:157
+#, c-format
+msgid "%d week ago"
+msgid_plural "%d weeks ago"
+msgstr[0] "prieš %d savaitę"
+msgstr[1] "prieš %d savaites"
+msgstr[2] "prieš %d savaičių"
+
+#: ../libempathy/empathy-time.c:162
+#, c-format
+msgid "%d month ago"
+msgid_plural "%d months ago"
+msgstr[0] "prieš %d mėnesį"
+msgstr[1] "prieš %d mėnesius"
+msgstr[2] "prieš %d mėnesių"
 
-#: ../libempathy-gtk/empathy-account-chooser.c:326
+#: ../libempathy/empathy-time.c:167
+msgid "in the future"
+msgstr "ateityje"
+
+#: ../libempathy-gtk/empathy-account-chooser.c:419
 msgid "All"
 msgstr "Visi"
 
 #: ../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>"
-msgstr "<b>Sudėtingesnės parinktys</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 "Užmiršti slaptažodį ir išvalyti įrašą."
-
-#: ../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: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
+msgid "Advanced"
+msgstr "Papildomi"
+
+#: ../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 "S_laptažodis:"
 
-#: ../libempathy-gtk/empathy-account-widget-aim.glade.h:4
+#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:3
 msgid "Screen _Name:"
-msgstr "_Rodomas Vardas:"
-
-#: ../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
+msgstr "_Rodomas vardas:"
+
+#: ../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 "_Prievadas:"
 
-#: ../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 "_Serveris:"
 
-#: ../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 "Prisijungimo I_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 "K_oduotė:"
+msgstr "_Koduotė:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.c:245
+#: ../libempathy-gtk/empathy-account-widget-irc.c:241
 msgid "New Network"
-msgstr "Naujas Tinklas"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:1
-msgid "<b>Network</b>"
-msgstr "<b>Tinklas</b>"
+msgstr "Naujas tinklas"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:2
-msgid "<b>Servers</b>"
-msgstr "<b>Serveriai</b>"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1
 msgid "Charset:"
 msgstr "Koduotė:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:4
-msgid "Create a new IRC network"
-msgstr "Sukurti naują IRC tinklą"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:5
-msgid "Edit the selected IRC network"
-msgstr "Redaguoti pasirinktą IRC tinklą"
-
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
 msgid "Network"
 msgstr "Tinklas"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
 msgid "Network:"
 msgstr "Tinklas:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
 msgid "Nickname:"
 msgstr "Slapyvardis:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:9
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
 msgid "Password:"
 msgstr "Slaptažodis:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:10
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
 msgid "Quit message:"
 msgstr "Išėjimo žinutė:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:11
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
 msgid "Real name:"
 msgstr "Tikrasis vardas:"
 
-#: ../libempathy-gtk/empathy-account-widget-irc.glade.h:12
-msgid "Remove the selected IRC network"
-msgstr "Pašalinti pasirinktą IRC tinklą"
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8
+msgid "Servers"
+msgstr "Serveriai"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:2
-msgid "<b>Override server settings</b>"
-msgstr "<b>Pakeisti serverio nustatymus</b>"
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3
+msgid "Override server settings"
+msgstr "Nepaisyti serverio parametrų"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:5
 msgid "Pri_ority:"
 msgstr "Pri_oritetas:"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:6
 msgid "Reso_urce:"
-msgstr "Res_ursas:"
+msgstr "Ištekli_us:"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:7
 msgid "Use old SS_L"
-msgstr "Naudoti šifravimą (SS_L)"
+msgstr "Naudoti senąjį SS_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 "R_eikalingas šifravimas (TLS/SSL)"
+msgstr "_Reikalingas šifravimas (TLS/SSL)"
 
-#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:10
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:9
 msgid "_Ignore SSL certificate errors"
-msgstr "_Ignoruoti SSL sertifikato klaidas"
+msgstr "_Nepaisyti SSL liudijimo klaidų"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:2
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:2
 msgid "_Email:"
 msgstr "_El. paštas:"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:3
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:3
 msgid "_First Name:"
 msgstr "_Vardas:"
 
-#: ../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 "_Pavardė:"
 
-#: ../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 "_Slapyvardis:"
 
-#: ../libempathy-gtk/empathy-account-widget-salut.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:7
 msgid "_Published Name:"
 msgstr "_Prisistatymo vardas:"
 
 #. 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 "Rasti STUN"
+msgstr "Aptikti STUN"
 
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:6
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:5
 msgid "STUN Server:"
-msgstr "STUN Serveris:"
+msgstr "STUN serveris:"
 
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:7
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
 msgid "STUN port:"
 msgstr "STUN prievadas:"
 
-#: ../libempathy-gtk/empathy-account-widget-sip.glade.h:8
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
 msgid "_Username:"
-msgstr "Naudotojo _Vardas:"
+msgstr "_Naudotojo vardas:"
 
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:4
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:3
 msgid "Use _Yahoo Japan"
 msgstr "Naudoti _Yahoo Japan"
 
-#: ../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 "_Ignoruoti grupių ir pokalbių kambarių kvietimus"
+msgstr "_Nepaisyti konferencijų ir pokalbių kambarių kvietimų"
 
-#: ../libempathy-gtk/empathy-account-widget-yahoo.glade.h:9
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:8
 msgid "_Room List locale:"
-msgstr "_Kambarių Sąrašo kalbos kodas"
+msgstr "_Kambarių sąrašo lokalė:"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:462
-#: ../libempathy-gtk/empathy-avatar-chooser.c:537
+#: ../libempathy-gtk/empathy-avatar-chooser.c:449
+#: ../libempathy-gtk/empathy-avatar-chooser.c:525
 msgid "Couldn't convert image"
-msgstr "Nepavyko sukonvertuoti paveikslėlio"
+msgstr "Nepavyko konvertuoti paveikslėlio"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:463
+#: ../libempathy-gtk/empathy-avatar-chooser.c:450
 msgid "None of the accepted image formats is supported on your system"
-msgstr "Nei vienas iš priimtinų paveikslėlio formatų sistemoje neregistruotas"
+msgstr "Jokie priimti paveikslėlių formatai jūsų sistemoje nepalaikomi"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:956
+#: ../libempathy-gtk/empathy-avatar-chooser.c:933
 msgid "Select Your Avatar Image"
-msgstr "Pasirinkite savo paveikslėlį"
+msgstr "Pasirinkite savo pseudoportretą"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:959
+#: ../libempathy-gtk/empathy-avatar-chooser.c:936
 msgid "No Image"
 msgstr "Paveikslėlio nėra"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1021
+#: ../libempathy-gtk/empathy-avatar-chooser.c:998
 msgid "Images"
 msgstr "Paveikslėliai"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1025
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1002
 msgid "All Files"
-msgstr "Visi Failai"
+msgstr "Visi failai"
 
-#: ../libempathy-gtk/empathy-avatar-image.c:294
+#: ../libempathy-gtk/empathy-avatar-image.c:324
 msgid "Click to enlarge"
-msgstr "Spustelėkite, kad padidinti"
+msgstr "Norėdami padidinti, spustelėkite"
+
+#: ../libempathy-gtk/empathy-chat.c:186
+msgid "Failed to reconnect this chat"
+msgstr "Nepavyko iš naujo prisijungti prie šio pokalbio"
+
+#: ../libempathy-gtk/empathy-chat.c:404
+msgid "Unsupported command"
+msgstr "Nepalaikoma komanda"
 
-#: ../libempathy-gtk/empathy-chat.c:498
+#: ../libempathy-gtk/empathy-chat.c:539
 msgid "offline"
 msgstr "atsijungęs"
 
-#: ../libempathy-gtk/empathy-chat.c:501
+#: ../libempathy-gtk/empathy-chat.c:542
 msgid "invalid contact"
-msgstr "duomenys netinkami"
+msgstr "netinkamas adresatas"
 
-#: ../libempathy-gtk/empathy-chat.c:504
+#: ../libempathy-gtk/empathy-chat.c:545
 msgid "permission denied"
 msgstr "prieeiga uždrausta"
 
-#: ../libempathy-gtk/empathy-chat.c:507
+#: ../libempathy-gtk/empathy-chat.c:548
 msgid "too long message"
-msgstr "žinutė per ilga"
+msgstr "per ilga žinutė"
 
-#: ../libempathy-gtk/empathy-chat.c:510
+#: ../libempathy-gtk/empathy-chat.c:551
 msgid "not implemented"
-msgstr "Å i funkcija dar nerealizuota"
+msgstr "Å¡i funkcija dar nerealizuota"
 
-#: ../libempathy-gtk/empathy-chat.c:513
+#: ../libempathy-gtk/empathy-chat.c:554
 msgid "unknown"
 msgstr "nežinoma"
 
-#: ../libempathy-gtk/empathy-chat.c:517
+#: ../libempathy-gtk/empathy-chat.c:558
 #, c-format
 msgid "Error sending message '%s': %s"
 msgstr "Klaida siunčiant žinutę „%s“: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:547
+#: ../libempathy-gtk/empathy-chat.c:588
 #, c-format
 msgid "Topic set to: %s"
-msgstr "Tema: %s"
+msgstr "Tema nustatyta į: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:549
+#: ../libempathy-gtk/empathy-chat.c:590
 msgid "No topic defined"
-msgstr "Nenurodyta tema"
+msgstr "Nenurodyta jokia tema"
 
-#: ../libempathy-gtk/empathy-chat.c:964
+#: ../libempathy-gtk/empathy-chat.c:959
+msgid "(No Suggestions)"
+msgstr "(Nėra pasiūlymų)"
+
+#: ../libempathy-gtk/empathy-chat.c:1013
 msgid "Insert Smiley"
 msgstr "Įterpti šypsenėlę"
 
 #. send button
-#: ../libempathy-gtk/empathy-chat.c:982
-#: ../libempathy-gtk/empathy-ui-utils.c:1559
+#: ../libempathy-gtk/empathy-chat.c:1031
+#: ../libempathy-gtk/empathy-ui-utils.c:1475
 msgid "_Send"
 msgstr "_Siųsti"
 
-#: ../libempathy-gtk/empathy-chat.c:1016
-msgid "_Check Word Spelling..."
-msgstr "_Tikrinti žodžių rašybą..."
+#: ../libempathy-gtk/empathy-chat.c:1065
+msgid "_Spelling Suggestions"
+msgstr "_Rašybos pasiūlymai"
 
-#: ../libempathy-gtk/empathy-chat.c:1134
+#: ../libempathy-gtk/empathy-chat.c:1179
 #, c-format
 msgid "%s has joined the room"
 msgstr "%s prisijungė prie pokalbių kambario"
 
-#: ../libempathy-gtk/empathy-chat.c:1137
+#: ../libempathy-gtk/empathy-chat.c:1182
 #, c-format
 msgid "%s has left the room"
 msgstr "%s paliko pokalbių kambarį"
 
-#: ../libempathy-gtk/empathy-chat.c:1251 ../src/empathy-call-window.c:721
+#: ../libempathy-gtk/empathy-chat.c:1313 ../src/empathy-call-window.c:1226
 msgid "Disconnected"
-msgstr "Neprisijungęs"
+msgstr "Atsijungęs(-usi)"
 
-#: ../libempathy-gtk/empathy-chat.c:1647
+#: ../libempathy-gtk/empathy-chat.c:1742
 msgid "Connected"
-msgstr "Prisijungęs"
+msgstr "Prisijungęs(-usi)"
 
-#: ../libempathy-gtk/empathy-chat.c:1697
-#: ../libempathy-gtk/empathy-log-window.c:505
+#: ../libempathy-gtk/empathy-chat.c:1792
+#: ../libempathy-gtk/empathy-log-window.c:501
 msgid "Conversation"
 msgstr "Pokalbis"
 
-#: ../libempathy-gtk/empathy-chat.glade.h:1
-msgid "<b>Topic:</b>"
-msgstr "<b>Tema:</b>"
-
-#: ../libempathy-gtk/empathy-chat.glade.h:2
-msgid "Group Chat"
-msgstr "Grupinis pokalbis"
+#: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:472
+msgid "Topic:"
+msgstr "Tema:"
 
-#: ../libempathy-gtk/empathy-chat-text-view.c:331
+#: ../libempathy-gtk/empathy-chat-text-view.c:316
 msgid "_Copy Link Address"
 msgstr "_Kopijuoti nuorodos adresą"
 
-#: ../libempathy-gtk/empathy-chat-text-view.c:339
+#: ../libempathy-gtk/empathy-chat-text-view.c:323
 msgid "_Open Link"
 msgstr "_Atverti nuorodą"
 
 #. Translators: timestamp displayed between conversations in
 #. * chat windows (strftime format string)
-#: ../libempathy-gtk/empathy-chat-text-view.c:432
+#: ../libempathy-gtk/empathy-chat-text-view.c:421
 msgid "%A %B %d %Y"
-msgstr "%Y-%b-%d (%A)"
-
-#: ../libempathy-gtk/empathy-contact-dialogs.c:180
-msgid "Personal Information"
-msgstr "Asmeninė informacija"
+msgstr "%Y %B %d (%A)"
 
-#: ../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 "Keisti bičiulio info"
+msgstr "Taisyti adresato informaciją"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:186
-msgid "Contact Information"
-msgstr "Bičiulio Info"
-
-#: ../libempathy-gtk/empathy-contact-dialogs.c:267
-msgid "I would like to add you to my contact list."
-msgstr "Norėčiau Jus įtraukti į savo bičiulių sąrašą."
+#: ../libempathy-gtk/empathy-contact-dialogs.c:289
+msgid "Personal Information"
+msgstr "Asmeninė informacija"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:291
+#: ../libempathy-gtk/empathy-contact-dialogs.c:392
 msgid "New Contact"
-msgstr "Bičiulis"
+msgstr "Naujas adresatas"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:1
+#: ../libempathy-gtk/empathy-contact-dialogs.ui.h:1
 msgid "Decide _Later"
-msgstr "Nuspręsti vė_liau"
+msgstr "Nuspręsti _vėliau"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:2
+#: ../libempathy-gtk/empathy-contact-dialogs.ui.h:2
 msgid "Subscription Request"
 msgstr "Prenumeratos prašymas"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1249
+#: ../libempathy-gtk/empathy-contact-list-view.c:1378
 #, c-format
 msgid "Do you really want to remove the group '%s'?"
-msgstr "Ar norite pašalinti grupę „%s“?"
+msgstr "Ar tikrai norite pašalinti grupę „%s“?"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1251
+#: ../libempathy-gtk/empathy-contact-list-view.c:1380
 msgid "Removing group"
 msgstr "Šalinama grupė"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1298
-#: ../libempathy-gtk/empathy-contact-list-view.c:1377
+#: ../libempathy-gtk/empathy-contact-list-view.c:1427
+#: ../libempathy-gtk/empathy-contact-list-view.c:1505
 msgid "_Remove"
 msgstr "_Pašalinti"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1328
+#: ../libempathy-gtk/empathy-contact-list-view.c:1457
 #, c-format
 msgid "Do you really want to remove the contact '%s'?"
-msgstr "Ar norite pašalinti bičiulį „%s“ iš sąrašo?"
+msgstr "Ar tikrai norite pašalinti adresatą „%s“?"
 
-#: ../libempathy-gtk/empathy-contact-list-view.c:1330
+#: ../libempathy-gtk/empathy-contact-list-view.c:1459
 msgid "Removing contact"
-msgstr "Šalinamas bičiulis"
-
-#: ../libempathy-gtk/empathy-contact-list-view.c:1335
-msgid "Sorry, I don't want you in my contact list anymore."
-msgstr "Atleiskite, bet esate nepageidaujamas mano adresatų sąraše."
+msgstr "Šalinamas adresatas"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:130
-#: ../src/empathy-main-window.glade.h:9
+#: ../libempathy-gtk/empathy-contact-menu.c:135
+#: ../src/empathy-main-window.ui.h:8
 msgid "_Chat"
-msgstr "P_okalbis"
+msgstr "_Pokalbis"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:161
-#: ../src/empathy-call-window.glade.h:5
-msgid "_Call"
-msgstr "_Kvietimas"
+#: ../libempathy-gtk/empathy-contact-menu.c:166
+msgctxt "menu item"
+msgid "_Audio Call"
+msgstr "_Garsinis skambutis"
+
+#: ../libempathy-gtk/empathy-contact-menu.c:198
+msgctxt "menu item"
+msgid "_Video Call"
+msgstr "_Vaizdinis skambutis"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:200
-#: ../src/empathy-main-window.glade.h:17
+#: ../libempathy-gtk/empathy-contact-menu.c:237
 msgid "_View Previous Conversations"
-msgstr "Žiūrė_ti ankstesnius pokalbius"
+msgstr "_Žiūrėti ankstesnius pokalbius"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:222
+#: ../libempathy-gtk/empathy-contact-menu.c:259
 msgid "Send file"
 msgstr "Siųsti failą"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:250
+#: ../libempathy-gtk/empathy-contact-menu.c:287
 msgid "Infor_mation"
 msgstr "Infor_macija"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:277
-#: ../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 "_Keisti"
+msgstr "_Taisyti"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:336
+#: ../libempathy-gtk/empathy-contact-menu.c:372
 msgid "Inviting to this room"
 msgstr "Kviečiamas į šį kambarį"
 
-#: ../libempathy-gtk/empathy-contact-menu.c:369
+#: ../libempathy-gtk/empathy-contact-menu.c:403
 msgid "_Invite to chatroom"
 msgstr "_Pakviesti į pokalbių kambarį"
 
-#: ../libempathy-gtk/empathy-contact-selector.c:111
+#: ../libempathy-gtk/empathy-contact-selector.c:129
 msgid "Select a contact"
-msgstr "Išrinkti bičiulį"
+msgstr "Pasirinkti adresatą"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:358
+#: ../libempathy-gtk/empathy-contact-widget.c:440
 msgid "Save Avatar"
-msgstr "Išsaugoti paveikslėlį"
+msgstr "Išsaugoti pseudoportretą"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:414
+#: ../libempathy-gtk/empathy-contact-widget.c:496
 msgid "Unable to save avatar"
-msgstr "Nepavyko išsaugoti paveikslėlio"
+msgstr "Nepavyko išsaugoti pseudoportreto"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:895
+#: ../libempathy-gtk/empathy-contact-widget.c:979
 msgid "Select"
-msgstr "Rinktis"
+msgstr "Pasirinkti"
 
-#: ../libempathy-gtk/empathy-contact-widget.c:904
-#: ../src/empathy-main-window.c:991
+#: ../libempathy-gtk/empathy-contact-widget.c:988
+#: ../src/empathy-main-window.c:906
 msgid "Group"
 msgstr "Grupė"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:1
-msgid "<b>Client Information</b>"
-msgstr "<b>Kliento info</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1239
+msgid "Country ISO Code:"
+msgstr "Šalies ISO kodas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1241
+msgid "Country:"
+msgstr "Šalis:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1243
+msgid "State:"
+msgstr "Būsena:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1245
+msgid "City:"
+msgstr "Miestas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1247
+msgid "Area:"
+msgstr "Sritis:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1249
+msgid "Postal Code:"
+msgstr "Pašto kodas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1251
+msgid "Street:"
+msgstr "Gatvė:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:2
-msgid "<b>Contact Details</b>"
-msgstr "<b>Išsami info</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1253
+msgid "Building:"
+msgstr "Pastatas:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:3
-msgid "<b>Contact</b>"
-msgstr "<b>Bičiulis</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1255
+msgid "Floor:"
+msgstr "Aukštas:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:4
-msgid "<b>Groups</b>"
-msgstr "<b>Grupės</b>"
+#: ../libempathy-gtk/empathy-contact-widget.c:1257
+msgid "Room:"
+msgstr "Kambarys:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1259
+msgid "Text:"
+msgstr "Tekstas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1261
+msgid "Description:"
+msgstr "Aprašymas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1263
+msgid "URI:"
+msgstr "URI:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1265
+msgid "Accuracy Level:"
+msgstr "Tikslumo lygis:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1267
+msgid "Error:"
+msgstr "Paklaida:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1269
+msgid "Vertical Error (meters):"
+msgstr "Vertikali paklaida (metrais):"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1271
+msgid "Horizontal Error (meters):"
+msgstr "Horizontali paklaida (metrais):"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1273
+msgid "Speed:"
+msgstr "Greitis:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1275
+msgid "Bearing:"
+msgstr "Azimutas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1277
+msgid "Climb Speed:"
+msgstr "Kilimo greitis:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1279
+msgid "Last Updated on:"
+msgstr "Paskutinįkart atnaujinta:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1281
+msgid "Longitude:"
+msgstr "Ilguma:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1283
+msgid "Latitude:"
+msgstr "Platuma:"
 
-#: ../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
+#: ../libempathy-gtk/empathy-contact-widget.c:1285
+msgid "Altitude:"
+msgstr "Altitudė:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1332
+msgid "<b>Location</b>"
+msgstr "<b>Vietovė</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1345
+msgid "<b>Location</b>, "
+msgstr "<b>Vietovė</b>, "
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1395
+msgid "%B %e, %Y at %R UTC"
+msgstr "%Y %B %e, %R UTC"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:1
+msgid "<b>Location</b> at (date)\t"
+msgstr "<b>Vietovė</b> (data)\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 "Paskyra:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:6
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
 msgid "Alias:"
-msgstr "Alternatyvus vardas:"
+msgstr "Alternatyvusis vardas:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:7
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:4
 msgid "Birthday:"
 msgstr "Gimtadienis:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:8
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:5
+msgid "Client Information"
+msgstr "Kliento informacija"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:6
 msgid "Client:"
 msgstr "Klientas:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:9
-msgid "Contact information"
-msgstr "Bičiulio info"
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:7
+#: ../src/empathy-main-window.c:889
+msgid "Contact"
+msgstr "Adresatas"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
+msgid "Contact Details"
+msgstr "Adresato informacija"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:10
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:9
 msgid "Email:"
 msgstr "El. paštas:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:11
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:10
 msgid "Fullname:"
-msgstr "Pilnas vardas:"
+msgstr "Visas vardas:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:11
+msgid "Groups"
+msgstr "Grupės"
 
 #. Identifier to connect to Instant Messaging network
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:13
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:13
 msgid "Identifier:"
 msgstr "Identifikatorius:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:14
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:14
 msgid "Information requested..."
-msgstr "Informacija užklausta..."
+msgstr "Informacijos užklausta..."
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:15
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:15
 msgid "OS:"
 msgstr "OS:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:16
+#: ../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 ""
-"Pasirinkite grupes, į kurias norite įtraukti šį bičiulį. Galite pasirinkti "
-"daugiau nei vieną grupę arba nei vienos grupės."
+"Pasirinkite grupes, į kurias norite įtraukti šį adresatą. Galite pasirinkti "
+"daugiau nei vieną grupę arba nepasirinkti nei vienos grupės."
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:17
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:17
 msgid "Version:"
 msgstr "Versija:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:18
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:18
 msgid "Web site:"
-msgstr "Tinklapis:"
+msgstr "Tinklalapis:"
 
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:19
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:19
 msgid "_Add Group"
-msgstr "Pridėti grupę"
+msgstr "_Pridėti grupę"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:284
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:283
 msgid "new server"
-msgstr "serveris"
+msgstr "naujas serveris"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:513
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:510
 msgid "Server"
 msgstr "Serveris:"
 
-#: ../libempathy-gtk/empathy-irc-network-dialog.c:528
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:525
 msgid "Port"
 msgstr "Prievadas:"
 
-#: ../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:498
-#: ../src/empathy-import-dialog.c:277
+#: ../libempathy-gtk/empathy-log-window.c:494
+#: ../src/empathy-import-dialog.c:281
 msgid "Account"
 msgstr "Paskyra"
 
-#: ../libempathy-gtk/empathy-log-window.c:515
+#: ../libempathy-gtk/empathy-log-window.c:511
 msgid "Date"
 msgstr "Data"
 
-#. Tab Label
-#: ../libempathy-gtk/empathy-log-window.glade.h:2
+#: ../libempathy-gtk/empathy-log-window.ui.h:1
 msgid "Conversations"
 msgstr "Pokalbiai"
 
-#: ../libempathy-gtk/empathy-log-window.glade.h:3
+#: ../libempathy-gtk/empathy-log-window.ui.h:2
 msgid "Previous Conversations"
 msgstr "Ankstesni pokalbiai"
 
-#. Tab Label
-#: ../libempathy-gtk/empathy-log-window.glade.h:5
+#: ../libempathy-gtk/empathy-log-window.ui.h:3
 msgid "Search"
 msgstr "Ieškoti"
 
-#. Searching *for* something
-#: ../libempathy-gtk/empathy-log-window.glade.h:7
+#: ../libempathy-gtk/empathy-log-window.ui.h:4
 msgid "_For:"
-msgstr "Kam:"
+msgstr "_Kam:"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:2
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:2
 msgid "C_all"
-msgstr "Sk_ambinti"
+msgstr "_Skambutis"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:3
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:3
 msgid "C_hat"
-msgstr "Pokalbis"
+msgstr "_Pokalbis"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:4
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:4
 msgid "Contact ID:"
-msgstr "Bičiulio ID:"
+msgstr "Adresato ID:"
 
-#: ../libempathy-gtk/empathy-new-message-dialog.glade.h:5
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:5
 msgid "New Conversation"
-msgstr "Pokalbis"
+msgstr "Naujas pokalbis"
+
+#. COL_STATE_ICON_NAME
+#. COL_STATE
+#. COL_STATUS_TEXT
+#. COL_DISPLAY_MARKUP
+#. COL_STATUS_CUSTOMISABLE
+#. COL_TYPE
+#: ../libempathy-gtk/empathy-presence-chooser.c:172
+msgid "Custom Message..."
+msgstr "Pasirinktinė žinutė..."
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:227
+msgid "Edit Custom Messages..."
+msgstr "Taisyti pasirinktines žinutes..."
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:326
+msgid "Click to remove this status as a favorite"
+msgstr "Spustelėkite, jei norite pašalinti šią būseną iš mėgiamų"
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:335
+msgid "Click to make this status a favorite"
+msgstr "Spustelėkite, jei norite padaryti šią būsena mėgiama"
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:369
+msgid "Set status"
+msgstr "Nustatyti būseną"
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:782
+msgid "Set your presence and current status"
+msgstr "Nurodykite savo buvimą ir dabartinę būseną"
 
 #. Custom messages
-#: ../libempathy-gtk/empathy-presence-chooser.c:685
+#: ../libempathy-gtk/empathy-presence-chooser.c:1017
 msgid "Custom messages..."
-msgstr "Kita..."
+msgstr "Pasirinktinės žinutės..."
+
+#: ../libempathy-gtk/empathy-sound.c:51
+msgid "Received an instant message"
+msgstr "Gauta žinutė"
 
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:1
-msgid "Custom message"
-msgstr "Kitoks pranešimas"
+#: ../libempathy-gtk/empathy-sound.c:53
+msgid "Sent an instant message"
+msgstr "Išsiųsta žinutė"
 
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:2
-msgid "Message:"
-msgstr "Pranešimas:"
+#: ../libempathy-gtk/empathy-sound.c:55
+msgid "Incoming chat request"
+msgstr "Gautas kvietimas pokalbiui"
 
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:3
-msgid "Save message"
-msgstr "Išsaugoti"
+#: ../libempathy-gtk/empathy-sound.c:57
+msgid "Contact connected"
+msgstr "Adresatas prisijungęs"
 
-#: ../libempathy-gtk/empathy-presence-chooser.glade.h:4
-msgid "Status:"
-msgstr "Būsena:"
+#: ../libempathy-gtk/empathy-sound.c:59
+msgid "Contact disconnected"
+msgstr "Adresatas atsijungęs"
 
-#: ../libempathy-gtk/empathy-spell-dialog.c:88
-msgid "Word"
-msgstr "Žodis"
+#: ../libempathy-gtk/empathy-sound.c:61
+msgid "Connected to server"
+msgstr "Prisijungėte prie serverio"
 
-#: ../libempathy-gtk/empathy-spell-dialog.c:265
-msgid "Suggestions for the word"
-msgstr "Žodžio pasiūlymas"
+#: ../libempathy-gtk/empathy-sound.c:63
+msgid "Disconnected from server"
+msgstr "Atsijungėte nuo serverio"
 
-#: ../libempathy-gtk/empathy-spell-dialog.glade.h:1
-msgid "Spell Checker"
-msgstr "Rašybos tikrinimas"
+#: ../libempathy-gtk/empathy-sound.c:65
+msgid "Incoming voice call"
+msgstr "Gaunamas garsinis skambutis"
+
+#: ../libempathy-gtk/empathy-sound.c:67
+msgid "Outgoing voice call"
+msgstr "Atliekamas garsinis skambutis"
+
+#: ../libempathy-gtk/empathy-sound.c:69
+msgid "Voice call ended"
+msgstr "Baigtas garsinis skambutis"
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:362
+msgid "Enter Custom Message"
+msgstr "Įveskite pasirinktinę žinutę"
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:521
+msgid "Edit Custom Messages"
+msgstr "Taisykite pasirinktinę žinutę"
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:1
+msgid "Add _New Preset"
+msgstr "Pridėti _naują žinutę"
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:2
+msgid "Saved Presets"
+msgstr "Išsaugoti žinutes"
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:3
+msgid "gtk-add"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-spell-dialog.glade.h:2
-msgid "Suggestions for the word:"
-msgstr "Žodžio pasiūlymai:"
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:4
+msgid "gtk-remove"
+msgstr ""
 
-#: ../libempathy-gtk/empathy-theme-manager.c:60
+#: ../libempathy-gtk/empathy-theme-manager.c:66
 msgid "Classic"
 msgstr "Klasikinė"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:61
+#: ../libempathy-gtk/empathy-theme-manager.c:67
 msgid "Simple"
 msgstr "Paprasta"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:62
+#: ../libempathy-gtk/empathy-theme-manager.c:68
 msgid "Clean"
 msgstr "Tvarkinga"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:63
+#: ../libempathy-gtk/empathy-theme-manager.c:69
 msgid "Blue"
 msgstr "Mėlyna"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1406
+#: ../libempathy-gtk/empathy-theme-manager.c:71
+msgid "Adium"
+msgstr "Adium"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1377
 msgid "Unable to open URI"
 msgstr "Nepavyko atverti URI"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1551
+#: ../libempathy-gtk/empathy-ui-utils.c:1467
 msgid "Select a file"
 msgstr "Pasirinkite failą"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1587
-msgid "Received an instant message"
-msgstr "Gauta žinutė"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1589
-msgid "Sent an instant message"
-msgstr "Išsiųsta žinutė"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1591
-msgid "Incoming chat request"
-msgstr "Kvietimas pokalbiui"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1593
-msgid "Contact connected"
-msgstr "Bičiulis prisijungęs"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1595
-msgid "Contact disconnected"
-msgstr "Bičiulis atsijungęs"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1597
-msgid "Connected to server"
-msgstr "Prisijungęs prie serverio"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1599
-msgid "Disconnected from server"
-msgstr "Atsijungęs nuo serverio"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1601
-msgid "Incoming voice call"
-msgstr "Skambutis balso ryšiui"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1603
-msgid "Outgoing voice call"
-msgstr "Skambinama balso ryšiui"
-
-#: ../libempathy-gtk/empathy-ui-utils.c:1605
-msgid "Voice call ended"
-msgstr "Balso ryšys baigtas"
+#: ../libempathy-gtk/empathy-ui-utils.c:1525
+msgid "Select a destination"
+msgstr "Pasirinkite paskirtį"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:158
 msgid "Current Locale"
@@ -1120,7 +1409,7 @@ msgstr "Graikų"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:242
 msgid "Gujarati"
-msgstr "Gujarati"
+msgstr "Gudžaratų"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:245
 msgid "Gurmukhi"
@@ -1160,7 +1449,7 @@ msgstr "Korėjiečių"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:282
 msgid "Nordic"
-msgstr "Šiaurės šalių"
+msgstr "Šiaurės Europos"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:285
 msgid "Persian"
@@ -1169,15 +1458,15 @@ msgstr "Persų"
 #: ../libempathy-gtk/totem-subtitle-encoding.c:288
 #: ../libempathy-gtk/totem-subtitle-encoding.c:290
 msgid "Romanian"
-msgstr "Lotynų"
+msgstr "Rumunų"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:293
 msgid "South European"
-msgstr "Pietų Europos"
+msgstr "Pietinės Europos"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:296
 msgid "Thai"
-msgstr "Thai"
+msgstr "Tajų"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:299
 #: ../libempathy-gtk/totem-subtitle-encoding.c:301
@@ -1200,7 +1489,7 @@ msgstr "Unikodas"
 #: ../libempathy-gtk/totem-subtitle-encoding.c:325
 #: ../libempathy-gtk/totem-subtitle-encoding.c:327
 msgid "Western"
-msgstr "Vakarų"
+msgstr "Vakariečių"
 
 #: ../libempathy-gtk/totem-subtitle-encoding.c:330
 #: ../libempathy-gtk/totem-subtitle-encoding.c:332
@@ -1214,21 +1503,18 @@ msgstr "Vietnamiečių"
 #: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:1
 msgid ""
 "The contact to display in the applet. Empty means no contact is displayed."
-msgstr ""
-"Kuris bičiulis bus rodomas įskiepyje. Jei nepažymėta, joks nebus rodomas."
+msgstr "Įtaise rodytinas adresatas. Jei tuščia – joks."
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:2
 msgid "The contact's avatar token. Empty means contact has no avatar."
-msgstr ""
-"Bičiuliui priskirtas paveikslėlis. Jei tuščia, bičiulis rodomas be "
-"paveikslėlio."
+msgstr "Adresato pseudoportretas. Jei tuščia, adresatas yra be pseudoportreto."
 
 #: ../megaphone/data/GNOME_Megaphone_Applet.server.in.in.h:1
 msgid "Megaphone"
 msgstr "Megafonas"
 
 #: ../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 "Kalbėk!"
 
@@ -1242,44 +1528,44 @@ msgid "_Information"
 msgstr "_Informacija"
 
 #: ../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 "_Nustatymai"
 
-#: ../megaphone/src/megaphone-applet.c:255
+#: ../megaphone/src/megaphone-applet.c:168
 msgid "Please configure a contact."
-msgstr "Sutvarkykite bičiulio sąranką."
+msgstr "Sukonfigūruokite adresatą."
 
-#: ../megaphone/src/megaphone-applet.c:348
+#: ../megaphone/src/megaphone-applet.c:258
 msgid "Select contact..."
-msgstr "Pasirinkti bičiulį..."
+msgstr "Pasirinkti adresatą..."
 
 #: ../nothere/data/GNOME_NotHere_Applet.server.in.in.h:1
 msgid "Presence"
-msgstr "Dalyvavimas"
+msgstr "Buvimas"
 
 #: ../nothere/data/GNOME_NotHere_Applet.server.in.in.h:2
 #: ../nothere/src/nothere-applet.c:106
 msgid "Set your own presence"
-msgstr "Nustatyti savo dalyvavimą"
+msgstr "Nustatyti savo buvimą"
 
-#: ../src/empathy.c:428
+#: ../src/empathy.c:504
 msgid "Don't connect on startup"
 msgstr "Paleidimo metu neprisijungti"
 
-#: ../src/empathy.c:432
+#: ../src/empathy.c:508
 msgid "Don't show the contact list on startup"
-msgstr "Pradedant darbą nerodyti bičiulių sąrašo"
+msgstr "Paleidus nerodyti adresatų sąrašo"
 
-#: ../src/empathy.c:436
+#: ../src/empathy.c:512
 msgid "Show the accounts dialog"
-msgstr "Rodyti ir taisyti paskyras"
+msgstr "Rodyti paskyrų dialogą"
 
-#: ../src/empathy.c:448
+#: ../src/empathy.c:524
 msgid "- Empathy Instant Messenger"
-msgstr "- Greitų žinučių programa „Empathy“"
+msgstr "– Pokalbių programa 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 "
@@ -1291,7 +1577,7 @@ msgstr ""
 "programinės įrangos fondo; 2-osios arba (Jūsų pasirinkimu) bet kurios "
 "vėlesnės licencijos versijos sąlygomis."
 
-#: ../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 "
@@ -1302,7 +1588,7 @@ msgstr ""
 "netgi be numanomų PARDAVIMO arba TINKAMUMO TAM TIKRAM TIKSLUI garantijų. Dėl "
 "išsamesnės informacijos žiūrėkite GNU bendrąją viešąją licenciją."
 
-#: ../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 "
@@ -1312,42 +1598,41 @@ msgstr ""
 "Empathy; jeigu negavote, rašykite Laisvosios programinės įrangos fondui, 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 "Greitų žinučių klientas skirtas GNOME"
+msgstr "Sparčių žinučių programa, skirta GNOME aplinkai"
 
-#: ../src/empathy-about-dialog.c:126
+#: ../src/empathy-about-dialog.c:125
 msgid "translator-credits"
 msgstr ""
 "Žygimantas Beručka\n"
 "Justina Klingaitė\n"
 "Saulius Šopaga"
 
-#: ../src/empathy-accounts-dialog.c:391
+#: ../src/empathy-accounts-dialog.c:393
 msgid "Enabled"
-msgstr "Įjungtas"
+msgstr "Įjungta"
 
-#: ../src/empathy-accounts-dialog.c:401
-#: ../src/empathy-accounts-dialog.glade.h:4
+#: ../src/empathy-accounts-dialog.c:403 ../src/empathy-accounts-dialog.ui.h:1
 msgid "Accounts"
 msgstr "Paskyros"
 
 #. To translator: %s is the protocol name
-#: ../src/empathy-accounts-dialog.c:833
+#: ../src/empathy-accounts-dialog.c:838
 #, c-format
 msgid "New %s account"
 msgstr "Nauja %s paskyra"
 
-#: ../src/empathy-accounts-dialog.c:943
+#: ../src/empathy-accounts-dialog.c:951
 #, c-format
 msgid ""
 "You are about to remove your %s account!\n"
 "Are you sure you want to proceed?"
 msgstr ""
-"Ištrinsite paskyrą %s!\n"
+"Ištrinsite savo paskyrą %s!\n"
 "Ar tikrai norite tęsti?"
 
-#: ../src/empathy-accounts-dialog.c:949
+#: ../src/empathy-accounts-dialog.c:957
 msgid ""
 "Any associated conversations and chat rooms will NOT be removed if you "
 "decide to proceed.\n"
@@ -1355,309 +1640,231 @@ msgid ""
 "Should you decide to add the account back at a later time, they will still "
 "be available."
 msgstr ""
-"Jei nuspręsite tęsti, susiję pokalbiai bei pokalbių kambariai nebus "
-"ištrinti.\n"
+"Jei nuspręsite tęsti, susiję pokalbiai ir pokalbių kambariai NEBUS ištrinti.\n"
 "\n"
-"Jei vėliau vėl pridėsite paskyrą, jie vis dar bus prieinami."
-
-#: ../src/empathy-accounts-dialog.glade.h:1
-msgid "<b>New Account</b>"
-msgstr "<b>Paskyra</b>"
-
-#: ../src/empathy-accounts-dialog.glade.h:2
-msgid "<b>No protocol installed</b>"
-msgstr "<b>Neįdiegtas joks protokolas</b>"
+"Jei vėliau vėl pridėsite šią paskyrą, jie tebebus prieinami."
 
-#: ../src/empathy-accounts-dialog.glade.h:3
-msgid "<b>Settings</b>"
-msgstr "<b>Nustatymai</b>"
+#: ../src/empathy-accounts-dialog.ui.h:2
+msgid "Add Account"
+msgstr "Pridėti paskyrą"
 
-#: ../src/empathy-accounts-dialog.glade.h:5
+#: ../src/empathy-accounts-dialog.ui.h:3
 msgid "Cr_eate"
-msgstr "Sukurti"
+msgstr "Su_kurti"
 
-#: ../src/empathy-accounts-dialog.glade.h:6
-msgid "I already have an account I want to use"
-msgstr "Jau turiu paskyrą, kuria norėčiau naudotis"
+#: ../src/empathy-accounts-dialog.ui.h:4
+msgid "Gmail"
+msgstr "Gmail"
 
-#: ../src/empathy-accounts-dialog.glade.h:7
+#: ../src/empathy-accounts-dialog.ui.h:5
 msgid "Import Accounts..."
-msgstr "Įkelti paskyras..."
+msgstr "Įmportuoti paskyras..."
 
-#: ../src/empathy-accounts-dialog.glade.h:8
+#: ../src/empathy-accounts-dialog.ui.h:6
+msgid "No protocol installed"
+msgstr "Neįdiegta jokių protokolų"
+
+#: ../src/empathy-accounts-dialog.ui.h:7
+msgid "Settings"
+msgstr "Parametrai"
+
+#: ../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 ""
-"Norint sukurti naują paskyrą, pirmiau reikia įdiegti programinę sąsają "
-"kiekvienam pageidaujamam protokolui."
+"Norint sukurti naują paskyrą, pirmiau reikia įdiegti kiekvieno pagaudaujamo "
+"naudoti protokolo posistemę."
 
-#: ../src/empathy-accounts-dialog.glade.h:9
+#: ../src/empathy-accounts-dialog.ui.h:9
 msgid "Type:"
 msgstr "Tipas:"
 
-#: ../src/empathy-call-window.c:334
+#: ../src/empathy-accounts-dialog.ui.h:10
+msgid "_Add..."
+msgstr "_Pridėti..."
+
+#: ../src/empathy-accounts-dialog.ui.h:11
+msgid "_Create a new account"
+msgstr "_Sukurti naują paskyrą"
+
+#: ../src/empathy-accounts-dialog.ui.h:12
+msgid "_Reuse an existing account"
+msgstr "_Panaudoti esančią paskyrą"
+
+#: ../src/empathy-call-window.c:420
 msgid "Contrast"
 msgstr "Kontrastas"
 
-#: ../src/empathy-call-window.c:337
+#: ../src/empathy-call-window.c:423
 msgid "Brightness"
 msgstr "Skaistis"
 
-#: ../src/empathy-call-window.c:340
+#: ../src/empathy-call-window.c:426
 msgid "Gamma"
 msgstr "Gama"
 
-#: ../src/empathy-call-window.c:429
+#: ../src/empathy-call-window.c:531
 msgid "Volume"
 msgstr "Garsumas"
 
-#: ../src/empathy-call-window.c:520
+#: ../src/empathy-call-window.c:662
+msgid "Connecting..."
+msgstr "Jungiamasi..."
+
+#: ../src/empathy-call-window.c:746
 msgid "_Sidebar"
-msgstr "Parankinė"
+msgstr "Š_oninė juosta"
 
-#: ../src/empathy-call-window.c:538
+#: ../src/empathy-call-window.c:765
 msgid "Dialpad"
 msgstr "Tel. klaviatūra"
 
-#: ../src/empathy-call-window.c:544
+#: ../src/empathy-call-window.c:771
 msgid "Audio input"
 msgstr "Garso įvestis"
 
-#: ../src/empathy-call-window.c:548
+#: ../src/empathy-call-window.c:775
 msgid "Video input"
 msgstr "Vaizdo įvestis"
 
-#: ../src/empathy-call-window.c:561
-msgid "Connecting..."
-msgstr "Jungiama..."
+#: ../src/empathy-call-window.c:836
+#, c-format
+msgid "Call with %s"
+msgstr "Skambinti su %s"
+
+#: ../src/empathy-call-window.c:905
+msgid "Call"
+msgstr "Skambutis"
 
 #. Translators: number of minutes:seconds the caller has been connected
-#: ../src/empathy-call-window.c:792
+#: ../src/empathy-call-window.c:1336
 #, c-format
-msgid "Connected -- %d:%02dm"
-msgstr "Prisijungęs – %d:%02dm"
+msgid "Connected  %d:%02dm"
+msgstr "Prisijunta – %d:%02dm"
 
-#: ../src/empathy-call-window.glade.h:1
+#: ../src/empathy-call-window.ui.h:1
 msgid "Hang up"
-msgstr "Atsijungti"
+msgstr "Padėti ragelį"
+
+#: ../src/empathy-call-window.ui.h:2
+msgid "Redial"
+msgstr "Rinkti iš naujo"
 
-#: ../src/empathy-call-window.glade.h:2
+#: ../src/empathy-call-window.ui.h:3
 msgid "Send Audio"
-msgstr "Siųsti audio"
+msgstr "Siųsti garsą"
 
-#: ../src/empathy-call-window.glade.h:3
+#: ../src/empathy-call-window.ui.h:4
 msgid "Send video"
-msgstr "Siųsti video"
+msgstr "Siųsti vaizdą"
 
-#: ../src/empathy-call-window.glade.h:4
+#: ../src/empathy-call-window.ui.h:5
 msgid "Video preview"
-msgstr "Peržiūra"
+msgstr "Vaizdo peržiūra"
 
-#: ../src/empathy-call-window.glade.h:6
+#: ../src/empathy-call-window.ui.h:6
+msgid "_Call"
+msgstr "_Skambutis"
+
+#: ../src/empathy-call-window.ui.h:7 ../src/empathy-main-window.ui.h:21
 msgid "_View"
 msgstr "_Rodymas"
 
-#: ../src/empathy-chat-window.c:313
+#: ../src/empathy-chat-window.c:344
 #, c-format
 msgid "Conversations (%d)"
 msgstr "Pokalbiai (%d)"
 
-#: ../src/empathy-chat-window.c:418
-msgid "Topic:"
-msgstr "Tema:"
-
-#: ../src/empathy-chat-window.c:423
+#: ../src/empathy-chat-window.c:476
 msgid "Typing a message."
 msgstr "Rašoma žinutė."
 
-#: ../src/empathy-chat-window.c:892 ../src/empathy-event-manager.c:429
-#, c-format
-msgid "New message from %s"
-msgstr "Nauja žinutė iš %s"
-
-#: ../src/empathy-chat-window.glade.h:1
-msgid "C_lear"
-msgstr "Išva_lyti"
-
-#: ../src/empathy-chat-window.glade.h:2
-msgid "Chat"
-msgstr "Pokalbis"
-
-#: ../src/empathy-chat-window.glade.h:3
-msgid "Insert _Smiley"
-msgstr "Įterpti _šypsniuką"
-
-#: ../src/empathy-chat-window.glade.h:4
-msgid "Invitation _message:"
-msgstr "Pakvietimo ži_nutė:"
-
-#: ../src/empathy-chat-window.glade.h:5
-msgid "Invite"
-msgstr "Pakviesti"
-
-#: ../src/empathy-chat-window.glade.h:6
-msgid "Move Tab _Left"
-msgstr "Perkelti kortelę į _kairę"
-
-#: ../src/empathy-chat-window.glade.h:7
-msgid "Move Tab _Right"
-msgstr "Perkelti kortelę į _dešinę"
-
-#: ../src/empathy-chat-window.glade.h:8
-msgid "Select who would you like to invite:"
-msgstr "Pasirinkite ką norite pakviesti:"
-
-#: ../src/empathy-chat-window.glade.h:9
-msgid "You have been invited to join a chat conference."
-msgstr "Esate kviečiami prisijungti prie pokalbių konferencijos."
-
-#: ../src/empathy-chat-window.glade.h:10
-msgid "_Contact"
-msgstr "_Bičiulis"
-
-#: ../src/empathy-chat-window.glade.h:11 ../src/empathy-main-window.glade.h:10
-msgid "_Contents"
-msgstr "_Turinys"
-
-#: ../src/empathy-chat-window.glade.h:12
-msgid "_Conversation"
-msgstr "_Pokalbis"
-
-#: ../src/empathy-chat-window.glade.h:13
-msgid "_Detach Tab"
-msgstr "Atkabinti kortelę"
-
-#: ../src/empathy-chat-window.glade.h:15
-msgid "_Favorite Chatroom"
-msgstr "Mėgstamiausias kambarys"
-
-#: ../src/empathy-chat-window.glade.h:16 ../src/empathy-main-window.glade.h:12
-msgid "_Help"
-msgstr "Žinynas"
-
-#: ../src/empathy-chat-window.glade.h:17
-msgid "_Next Tab"
-msgstr "_Kita kortelė"
-
-#: ../src/empathy-chat-window.glade.h:18
-msgid "_Previous Tab"
-msgstr "_Ankstesnė kortelė"
-
-#: ../src/empathy-chat-window.glade.h:19
-msgid "_Tabs"
-msgstr "K_ortelės"
-
-#: ../src/empathy-chatrooms-window.c:262
+#: ../src/empathy-chatrooms-window.c:258
 msgid "Name"
 msgstr "Vardas"
 
-#: ../src/empathy-chatrooms-window.c:280
+#: ../src/empathy-chatrooms-window.c:276
 msgid "Room"
 msgstr "Kambarys"
 
-#: ../src/empathy-chatrooms-window.c:289
+#: ../src/empathy-chatrooms-window.c:285
 msgid "Auto-Connect"
 msgstr "Automatiškai prisijungti"
 
-#: ../src/empathy-chatrooms-window.glade.h:2
-msgid "Edit Favorite Room"
-msgstr "Taisyti mėgiamą kambarį"
-
-#: ../src/empathy-chatrooms-window.glade.h:3
-msgid "Join room on start_up"
-msgstr "Prisijungti prie pokalbių kambario paleidimo metu"
-
-#: ../src/empathy-chatrooms-window.glade.h:4
-msgid "Join this chat room when Empathy starts and you are connected"
-msgstr "Įeiti į šį pokalbių kambarį pradedant darbą ir prisijungus."
-
-#: ../src/empathy-chatrooms-window.glade.h:5
+#: ../src/empathy-chatrooms-window.ui.h:2
 msgid "Manage Favorite Rooms"
 msgstr "Tvarkyti mėgiamus kambarius"
 
-#: ../src/empathy-chatrooms-window.glade.h:6
-msgid "N_ame:"
-msgstr "V_ardas:"
-
-#: ../src/empathy-chatrooms-window.glade.h:7
-msgid "S_erver:"
-msgstr "S_erveris:"
-
-#: ../src/empathy-chatrooms-window.glade.h:9
-#: ../src/empathy-new-chatroom-dialog.glade.h:9
-msgid "_Room:"
-msgstr "Kambarys:"
-
-#: ../src/empathy-event-manager.c:377
+#: ../src/empathy-event-manager.c:321
 msgid "Incoming call"
 msgstr "Skambutis jums"
 
-#: ../src/empathy-event-manager.c:380
+#: ../src/empathy-event-manager.c:324
 #, c-format
 msgid "%s is calling you, do you want to answer?"
 msgstr "%s jums skambina, ar atsiliepsite?"
 
-#: ../src/empathy-event-manager.c:387
+#: ../src/empathy-event-manager.c:331
 msgid "_Reject"
-msgstr "Atmesti"
+msgstr "A_tmesti"
 
-#: ../src/empathy-event-manager.c:393
+#: ../src/empathy-event-manager.c:337
 msgid "_Answer"
-msgstr "_Atsakyti"
+msgstr "_Atsiliepti"
 
-#: ../src/empathy-event-manager.c:516
+#: ../src/empathy-event-manager.c:452
 #, c-format
 msgid "Incoming call from %s"
 msgstr "Skambutis jums nuo %s"
 
-#: ../src/empathy-event-manager.c:564
+#: ../src/empathy-event-manager.c:496
 #, c-format
 msgid "%s is offering you an invitation"
 msgstr "%s siūlo jums kvietimą"
 
-#: ../src/empathy-event-manager.c:570
+#: ../src/empathy-event-manager.c:502
 msgid "An external application will be started to handle it."
 msgstr "Jam priimti bus paleista išorinė programa."
 
-#: ../src/empathy-event-manager.c:575
+#: ../src/empathy-event-manager.c:507
 msgid "You don't have the needed external application to handle it."
-msgstr "Nėra įdiegta reikiama programa."
+msgstr "Nėra įdiegta tam reikalinga programa."
 
-#: ../src/empathy-event-manager.c:698
+#: ../src/empathy-event-manager.c:634
 msgid "Room invitation"
-msgstr "Pakvietimas į pokalbių kambarį"
+msgstr "Kvietimas į pokalbių kambarį"
 
-#: ../src/empathy-event-manager.c:701
+#: ../src/empathy-event-manager.c:637
 #, c-format
 msgid "%s is inviting you to join %s"
 msgstr "%s kviečia jus prisijungti prie %s"
 
-#. Decline button
-#: ../src/empathy-event-manager.c:709 ../src/empathy-ft-manager.c:1023
+#: ../src/empathy-event-manager.c:645
 msgid "_Decline"
 msgstr "_Atmesti"
 
-#: ../src/empathy-event-manager.c:714
+#: ../src/empathy-event-manager.c:650
+#: ../src/empathy-new-chatroom-dialog.ui.h:7
 msgid "_Join"
 msgstr "_Prisijungti"
 
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:689
 #, c-format
 msgid "%s invited you to join %s"
 msgstr "%s pakvietė jus prisijungti %s"
 
-#: ../src/empathy-event-manager.c:867
+#: ../src/empathy-event-manager.c:715
 #, c-format
 msgid "Incoming file transfer from %s"
 msgstr "Failo atsiuntimas iš %s"
 
-#: ../src/empathy-event-manager.c:961
+#: ../src/empathy-event-manager.c:895
 #, c-format
 msgid "Subscription requested by %s"
 msgstr "Užsisakymo prašymas iš %s"
 
-#: ../src/empathy-event-manager.c:965
+#: ../src/empathy-event-manager.c:899
 #, c-format
 msgid ""
 "\n"
@@ -1666,583 +1873,649 @@ msgstr ""
 "\n"
 "Žinutė: %s"
 
+#. someone is logging off
+#: ../src/empathy-event-manager.c:942
+#, c-format
+msgid "%s is now offline."
+msgstr "%s dabar atsijungęs(-usi)."
+
+#. someone is logging in
+#: ../src/empathy-event-manager.c:958
+#, c-format
+msgid "%s is now online."
+msgstr "%s dabar prisijungęs(-usi)."
+
 #. 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 "Nenustatyta priežastis"
-
-#: ../src/empathy-ft-manager.c:168
-msgid "The change in state was requested"
-msgstr "Būsenos keitimo užklausa"
-
-#: ../src/empathy-ft-manager.c:170
-msgid "You canceled the file transfer"
-msgstr "Atšaukėte failo persiuntimą"
-
-#: ../src/empathy-ft-manager.c:172
-msgid "The other participant canceled the file transfer"
-msgstr "Failo persiuntimą atšaukė kažkas iš dalyvių"
-
-#: ../src/empathy-ft-manager.c:174
-msgid "Error while trying to transfer the file"
-msgstr "Klaida bandant persiųsti failą"
+#: ../src/empathy-ft-manager.c:180
+msgctxt "file transfer percent"
+msgid "Unknown"
+msgstr "Nežinoma"
 
-#: ../src/empathy-ft-manager.c:176
-msgid "The other participant is unable to transfer the file"
-msgstr "Kažkas iš dalyvių negali persiųsti failo"
+#: ../src/empathy-ft-manager.c:275
+#, c-format
+msgid "%s of %s at %s/s"
+msgstr "%s iš %s %s/s sparta"
 
-#: ../src/empathy-ft-manager.c:178
-msgid "Unknown reason"
-msgstr "Nenustatyta priežastis"
+#: ../src/empathy-ft-manager.c:276
+#, c-format
+msgid "%s of %s"
+msgstr "%s iš %s"
 
 #. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:226
+#: ../src/empathy-ft-manager.c:307
 #, c-format
 msgid "Receiving \"%s\" from %s"
-msgstr "Priimama „%s“ nuo %s"
+msgstr "Priimama „%s“  %s"
 
 #. translators: first %s is filename, second %s is the contact name
-#: ../src/empathy-ft-manager.c:229
+#: ../src/empathy-ft-manager.c:310
 #, c-format
 msgid "Sending \"%s\" to %s"
-msgstr "Siunčiama „%s“. Gavėjas %s"
+msgstr "Siunčiama „%s“ adresatui %s"
 
-#: ../src/empathy-ft-manager.c:239
-msgctxt "file size"
-msgid "Unknown"
-msgstr "Nežinoma"
+#. 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 "Klaida priimant „%s“ iš %s"
+
+#: ../src/empathy-ft-manager.c:343
+msgid "Error receiving a file"
+msgstr "Klaida priimant failą"
 
-#. translators: first %s is the transferred size, second %s is
-#. * the total file size
-#: ../src/empathy-ft-manager.c:247
+#: ../src/empathy-ft-manager.c:348
 #, c-format
-msgid "%s of %s"
-msgstr "%s iš %s"
+msgid "Error sending \"%s\" to %s"
+msgstr "Klaida siunčiant „%s“ adresatui %s"
 
-#: ../src/empathy-ft-manager.c:254
-msgid "Waiting the other participant's response"
-msgstr "Laukiama kažkurio iš dalyvių atsakymo"
+#: ../src/empathy-ft-manager.c:351
+msgid "Error sending a file"
+msgstr "Klaida siunčiant failą"
 
-#: ../src/empathy-ft-manager.c:264
+#. 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“ priėmė iš %s"
+msgstr "„%s“ gautas iš %s"
 
-#: ../src/empathy-ft-manager.c:270
+#. 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“ išsiųstas. Gavėjas – %s"
+msgstr "„%s“ išsiųstas gavėjui %s"
 
-#: ../src/empathy-ft-manager.c:273
+#: ../src/empathy-ft-manager.c:498
 msgid "File transfer completed"
-msgstr "Failo persiuntimas baigtas"
+msgstr "Failo siuntimas baigtas"
 
-#: ../src/empathy-ft-manager.c:282
-#, c-format
-msgid "\"%s\" receiving from %s"
-msgstr "„%s“ priimama iš %s"
+#: ../src/empathy-ft-manager.c:617 ../src/empathy-ft-manager.c:784
+msgid "Waiting for the other participant's response"
+msgstr "Laukiama kito dalyvio atsakymo"
 
-#: ../src/empathy-ft-manager.c:288
+#: ../src/empathy-ft-manager.c:643 ../src/empathy-ft-manager.c:681
 #, c-format
-msgid "\"%s\" sending to %s"
-msgstr "„%s“ siunčiama. Gavėjas – %s"
+msgid "Checking integrity of \"%s\""
+msgstr "Tikrinamas „%s“ vientisumas"
 
-#: ../src/empathy-ft-manager.c:291
+#: ../src/empathy-ft-manager.c:646 ../src/empathy-ft-manager.c:684
 #, c-format
-msgid "File transfer canceled: %s"
-msgstr "Failo persiuntimas atšauktas: %s"
-
-#: ../src/empathy-ft-manager.c:306
-msgctxt "remaining time"
-msgid "Unknown"
-msgstr "Nežinoma"
-
-#: ../src/empathy-ft-manager.c:366
-msgctxt "file transfer percent"
-msgid "Unknown"
-msgstr "Nežinoma"
+msgid "Hashing \"%s\""
+msgstr "Kuriama „%s“ maiša"
 
-#: ../src/empathy-ft-manager.c:702
+#: ../src/empathy-ft-manager.c:1024
 msgid "%"
 msgstr "%"
 
-#: ../src/empathy-ft-manager.c:714
+#: ../src/empathy-ft-manager.c:1036
 msgid "File"
 msgstr "Failas"
 
-#: ../src/empathy-ft-manager.c:736
+#: ../src/empathy-ft-manager.c:1058
 msgid "Remaining"
 msgstr "Liko"
 
-#: ../src/empathy-ft-manager.c:887
-msgid "Cannot save file to this location"
-msgstr "Čia failo įrašyti negalima"
-
-#: ../src/empathy-ft-manager.c:933
-msgid "Save file as..."
-msgstr "Įrašyti taip..."
-
-#: ../src/empathy-ft-manager.c:1003
-msgid "unknown size"
-msgstr "nežinomas dydis"
-
-#: ../src/empathy-ft-manager.c:1009
-#, c-format
-msgid "%s would like to send you a file"
-msgstr "%s norėtų jums persiųsti failą"
-
-#: ../src/empathy-ft-manager.c:1014
-#, c-format
-msgid "Do you want to accept the file \"%s\" (%s)?"
-msgstr "Ar sutinkate priimti failą „%s“ (%s)?"
-
-#. Accept button
-#: ../src/empathy-ft-manager.c:1032
-msgid "_Accept"
-msgstr "_Priimti"
-
-#: ../src/empathy-ft-manager.glade.h:1
-msgid "File transfers"
-msgstr "Failų persiuntimai"
+#: ../src/empathy-ft-manager.ui.h:1
+msgid "File Transfers"
+msgstr "Failų siuntimai"
 
-#: ../src/empathy-ft-manager.glade.h:2
+#: ../src/empathy-ft-manager.ui.h:2
 msgid "Remove completed, canceled and failed file transfers from the list"
-msgstr ""
-"Pašalinti įvykdytus, atšauktus ir nepavykusius failų persiuntimo aprašus iš "
-"sąrašo"
+msgstr "Pašalinti baigtus, atšauktus ir nepavykusius failų siuntimus iš sąrašo"
 
 #. Translators: this is the header of a treeview column
-#: ../src/empathy-import-dialog.c:255
+#: ../src/empathy-import-dialog.c:259
 msgid "Import"
-msgstr "Importas"
+msgstr "Importuoti"
 
-#: ../src/empathy-import-dialog.c:264
+#: ../src/empathy-import-dialog.c:268
 msgid "Protocol"
 msgstr "Protokolas"
 
-#: ../src/empathy-import-dialog.c:290
+#: ../src/empathy-import-dialog.c:294
 msgid "Source"
 msgstr "Šaltinis"
 
-#: ../src/empathy-import-dialog.c:378
+#: ../src/empathy-import-dialog.c:388
 msgid ""
 "No accounts to import could be found. Empathy currently only supports "
 "importing accounts from Pidgin."
 msgstr ""
-"Nėra tinkamų importui paskyrų. Kol kas palaikomas tik paskyrų importas iš "
-"Pidgin."
+"Nėrasta importuotinų paskyrų. Kol kas Empathy gali importuoti paskyras tik "
+"iš Pidgin."
 
-#: ../src/empathy-import-dialog.glade.h:1
+#: ../src/empathy-import-dialog.ui.h:1
 msgid "Import Accounts"
-msgstr "Paskyrų importas"
+msgstr "Paskyrų importavimas"
+
+#: ../src/empathy-main-window.c:396
+msgid "_Edit account"
+msgstr "_Taisyti paskyrą"
 
-#: ../src/empathy-main-window.c:391
+#: ../src/empathy-main-window.c:499
 msgid "No error specified"
-msgstr "Nenustatyta klaida"
+msgstr "Nenurodyta klaida"
 
-#: ../src/empathy-main-window.c:394
+#: ../src/empathy-main-window.c:502
 msgid "Network error"
 msgstr "Tinklo klaida"
 
-#: ../src/empathy-main-window.c:397
+#: ../src/empathy-main-window.c:505
 msgid "Authentication failed"
-msgstr "Atpažinimas nepavyko."
+msgstr "Nepavyko nustatyti tapatybės"
 
-#: ../src/empathy-main-window.c:400
+#: ../src/empathy-main-window.c:508
 msgid "Encryption error"
 msgstr "Šifravimo klaida"
 
-#: ../src/empathy-main-window.c:403
+#: ../src/empathy-main-window.c:511
 msgid "Name in use"
-msgstr "Toks vardas jau yra"
+msgstr "Vardas jau naudojamas"
 
-#: ../src/empathy-main-window.c:406
+#: ../src/empathy-main-window.c:514
 msgid "Certificate not provided"
-msgstr "Nepateiktas sertifikatas"
+msgstr "Nepateiktas liudijimas"
 
-#: ../src/empathy-main-window.c:409
+#: ../src/empathy-main-window.c:517
 msgid "Certificate untrusted"
-msgstr "Sertifikatas nepatikimas"
+msgstr "Liudijimas nepatikimas"
 
-#: ../src/empathy-main-window.c:412
+#: ../src/empathy-main-window.c:520
 msgid "Certificate expired"
-msgstr "Nebegaliojantis sertifikatas"
+msgstr "Nebegaliojantis liudijimas"
 
-#: ../src/empathy-main-window.c:415
+#: ../src/empathy-main-window.c:523
 msgid "Certificate not activated"
-msgstr "Sertifikatas neaktyvuotas"
+msgstr "Liudijimas neaktyvuotas"
 
-#: ../src/empathy-main-window.c:418
+#: ../src/empathy-main-window.c:526
 msgid "Certificate hostname mismatch"
-msgstr "Sertifikato mazgo pavadinimo neatitiktis"
+msgstr "Neatitinka liudijimo kompiuterio vardas"
 
-#: ../src/empathy-main-window.c:421
+#: ../src/empathy-main-window.c:529
 msgid "Certificate fingerprint mismatch"
-msgstr "Sertifikato atpažinimo požymio neatitikimas"
+msgstr "Neatitinka liudijimo kontrolinis kodas"
 
-#: ../src/empathy-main-window.c:424
+#: ../src/empathy-main-window.c:532
 msgid "Certificate self-signed"
-msgstr "Paties pasirašytas sertifikatas"
+msgstr "Paties pasirašytas liudijimas"
 
-#: ../src/empathy-main-window.c:427
+#: ../src/empathy-main-window.c:535
 msgid "Certificate error"
-msgstr "Sertifikato klaida"
+msgstr "Liudijimo klaida"
 
-#: ../src/empathy-main-window.c:430
+#: ../src/empathy-main-window.c:538
 msgid "Unknown error"
-msgstr "Nenustatyta klaida"
+msgstr "Nežinoma klaida"
 
-#: ../src/empathy-main-window.c:594
+#: ../src/empathy-main-window.c:1221
 msgid "Show and edit accounts"
 msgstr "Rodyti ir taisyti paskyras"
 
-#: ../src/empathy-main-window.c:974
-msgid "Contact"
-msgstr "Bičiulis"
-
-#: ../src/empathy-main-window.c:1176
-msgid "_Edit account"
-msgstr "_Taisyti paskyrą"
-
-#: ../src/empathy-main-window.glade.h:1
+#: ../src/empathy-main-window.ui.h:1 ../src/empathy-preferences.ui.h:10
 msgid "Contact List"
-msgstr "Bičiulių sąrašas"
+msgstr "Adresatų sąrašas"
+
+#: ../src/empathy-main-window.ui.h:2
+msgid "Contacts on a _Map"
+msgstr "Adresatai že_mėlapyje"
 
-#: ../src/empathy-main-window.glade.h:2
+#: ../src/empathy-main-window.ui.h:3
 msgid "Context"
 msgstr "Kontekstas"
 
-#: ../src/empathy-main-window.glade.h:3
+#: ../src/empathy-main-window.ui.h:4
 msgid "Join _Favorites"
-msgstr "Prisijungti prie _mėgstamų"
+msgstr "Prisijungti prie _mėgiamų"
 
-#: ../src/empathy-main-window.glade.h:4
-msgid "Join _New..."
-msgstr "Prisijungti prie naujo..."
-
-#: ../src/empathy-main-window.glade.h:5
+#: ../src/empathy-main-window.ui.h:5
 msgid "Manage Favorites"
-msgstr "Tvarkyti Žymeles"
-
-#: ../src/empathy-main-window.glade.h:6
-msgid "Show _Offline Contacts"
-msgstr "Rodyti atsijungusius bičiulius"
+msgstr "Tvarkyti mėgiamus"
 
-#: ../src/empathy-main-window.glade.h:7
+#: ../src/empathy-main-window.ui.h:6
 msgid "_Accounts"
 msgstr "P_askyros"
 
-#: ../src/empathy-main-window.glade.h:8
+#: ../src/empathy-main-window.ui.h:7
 msgid "_Add Contact..."
-msgstr "Pridėti bičiulį..."
+msgstr "_Pridėti adresatą..."
+
+#: ../src/empathy-main-window.ui.h:9
+msgid "_Contents"
+msgstr "_Turinys"
+
+#: ../src/empathy-main-window.ui.h:10
+msgid "_Debug"
+msgstr "_Derinti"
+
+#: ../src/empathy-main-window.ui.h:12
+msgid "_File Transfers"
+msgstr "_Failų siuntimai"
 
-#: ../src/empathy-main-window.glade.h:13 ../src/empathy-status-icon.glade.h:2
+#: ../src/empathy-main-window.ui.h:13
+msgid "_Help"
+msgstr "_Žinynas"
+
+#: ../src/empathy-main-window.ui.h:14
+msgid "_Join..."
+msgstr "_Prisijungti..."
+
+#: ../src/empathy-main-window.ui.h:15 ../src/empathy-status-icon.ui.h:2
 msgid "_New Conversation..."
-msgstr "_Pokalbis"
+msgstr "_Naujas pokalbis..."
 
-#: ../src/empathy-main-window.glade.h:14
+#: ../src/empathy-main-window.ui.h:16
+msgid "_Offline Contacts"
+msgstr "_Atsijungę adresatai"
+
+#: ../src/empathy-main-window.ui.h:17
 msgid "_Personal Information"
 msgstr "_Asmeninė informacija"
 
-#: ../src/empathy-main-window.glade.h:16
+#: ../src/empathy-main-window.ui.h:19
+msgid "_Previous Conversations"
+msgstr "_Ankstesni pokalbiai"
+
+#: ../src/empathy-main-window.ui.h:20
 msgid "_Room"
-msgstr "Kambarys"
+msgstr "_Kambarys"
 
-#: ../src/empathy-new-chatroom-dialog.c:291
-msgid "Chat Rooms"
-msgstr "Pokalbių kambariai"
+#: ../src/empathy-new-chatroom-dialog.c:332
+msgid "Chat Room"
+msgstr "Pokalbių kambarys"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:2
-msgid "Browse:"
-msgstr "Naršyti:"
+#: ../src/empathy-new-chatroom-dialog.c:348
+msgid "Members"
+msgstr "Nariai"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:3
+#: ../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 ""
+"<b>%s</b>\n"
+"Reikia pakvietimo: %s\n"
+"Reikia slaptažodžio: %s\n"
+"Nariai: %s"
+
+#: ../src/empathy-new-chatroom-dialog.c:494
+#: ../src/empathy-new-chatroom-dialog.c:495
+msgid "Yes"
+msgstr "Taip"
+
+#: ../src/empathy-new-chatroom-dialog.c:494
+#: ../src/empathy-new-chatroom-dialog.c:495
+msgid "No"
+msgstr "Ne"
+
+#: ../src/empathy-new-chatroom-dialog.c:522
+msgid "Could not start room listing"
+msgstr "Nepavyko paleisti kambarių sąrašo"
+
+#: ../src/empathy-new-chatroom-dialog.c:532
+msgid "Could not stop room listing"
+msgstr "Nepavyko sustabdyti kambarių rodymo"
+
+#: ../src/empathy-new-chatroom-dialog.ui.h:2
+msgid "Couldn't load room list"
+msgstr "Nepavyko įkelti kambarių sąrašo"
+
+#: ../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 ""
-"Įveskite kambario pavadinimą arba spustelėkite vieną ar daugiau kambarių "
-"sąraše."
+"Įveskite kambario, į kurį norite įeiti, pavadinimą arba spustelėkite vieną "
+"ar daugiau kambarių sąraše."
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:4
+#: ../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 ""
-"Įrašykite serverio vardą, kuris aptarnauja pokalbių kambarį, arba "
-"neįrašykite nieko, jei pokalbių kambarys palaikomas esamos sąskaitos "
-"serverio."
-
-#: ../src/empathy-new-chatroom-dialog.glade.h:5
-msgid "Join"
-msgstr "Prisijungti"
+"Įrašykite serverio vardą, kuriame yra pokalbių kambarys, arba neįrašykite "
+"nieko, jei pokalbių kambarys yra dabartinės paskyros serveryje."
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:6
-msgid "Join New"
-msgstr "Prisijungti prie naujo"
+#: ../src/empathy-new-chatroom-dialog.ui.h:5
+msgid "Join Room"
+msgstr "Prisijungti prie kambario"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:7
-msgid "Re_fresh"
-msgstr "Atnaujinti"
+#: ../src/empathy-new-chatroom-dialog.ui.h:6
+msgid "Room List"
+msgstr "Kambarių sąrašas"
 
-#: ../src/empathy-new-chatroom-dialog.glade.h:8
-msgid ""
-"This list represents all chat rooms hosted on the server you have entered."
-msgstr ""
-"Šiame sąraše pateikiami visi pokalbių kambariai esantys šiame serveryje."
+#: ../src/empathy-new-chatroom-dialog.ui.h:8
+msgid "_Room:"
+msgstr "_Kambarys:"
 
-#: ../src/empathy-preferences.c:157
+#: ../src/empathy-preferences.c:161
 msgid "Message received"
 msgstr "Gauta žinutė"
 
-#: ../src/empathy-preferences.c:158
+#: ../src/empathy-preferences.c:162
 msgid "Message sent"
 msgstr "Žinutė išsiųsta"
 
-#: ../src/empathy-preferences.c:159
+#: ../src/empathy-preferences.c:163
 msgid "New conversation"
 msgstr "Naujas pokalbis"
 
-#: ../src/empathy-preferences.c:160
+#: ../src/empathy-preferences.c:164
 msgid "Contact goes online"
-msgstr "Bičiulis prisijungė"
+msgstr "Adresatas prisijungė"
 
-#: ../src/empathy-preferences.c:161
+#: ../src/empathy-preferences.c:165
 msgid "Contact goes offline"
-msgstr "Bičiulis atsijungė"
+msgstr "Adresatas atsijungė"
 
-#: ../src/empathy-preferences.c:162
+#: ../src/empathy-preferences.c:166
 msgid "Account connected"
-msgstr "Prisijungta pagal paskyrą"
+msgstr "Paskyra prijungta"
 
-#: ../src/empathy-preferences.c:163
+#: ../src/empathy-preferences.c:167
 msgid "Account disconnected"
-msgstr "Atsijungta pagal paskyrą"
+msgstr "Paskyra atjungta"
 
-#: ../src/empathy-preferences.c:397
+#: ../src/empathy-preferences.c:446
 msgid "Language"
 msgstr "Kalba"
 
-#: ../src/empathy-preferences.glade.h:1
-msgid "<b>Appearance</b>"
-msgstr "<b>Išvaizda</b>"
-
-#: ../src/empathy-preferences.glade.h:2
-msgid "<b>Behavior</b>"
-msgstr "<b>Elgsena</b>"
+#: ../src/empathy-preferences.ui.h:1
+msgid "Adium theme to use:"
+msgstr "Naudotina Adium tema:"
 
-#: ../src/empathy-preferences.glade.h:3
-msgid "<b>Contact List</b>"
-msgstr "<b>Bičiulių sąrašas</b>"
+#: ../src/empathy-preferences.ui.h:2
+msgid "Allow _GPS usage"
+msgstr "Leisti naudoti _GPS"
 
-#: ../src/empathy-preferences.glade.h:4
-msgid "<b>Enable spell checking for languages:</b>"
-msgstr "<b>Įgalinti šių kalbų rašybos tikrinimą:</b>"
+#: ../src/empathy-preferences.ui.h:3
+msgid "Allow _cellphone usage"
+msgstr "Leisti naudoti _mobilųjį telefoną"
 
-#: ../src/empathy-preferences.glade.h:5
-msgid "<b>Play sound for events</b>"
-msgstr "<b>Groti melodiją įvykiams</b>"
+#: ../src/empathy-preferences.ui.h:4
+msgid "Allow _network usage"
+msgstr "Leisti naudoti _tinklą"
 
-#: ../src/empathy-preferences.glade.h:6
-msgid ""
-"<small>The list of languages reflects only the languages for which you have "
-"a dictionary installed.</small>"
-msgstr ""
-"<small>Šiame kalbų sąraše yra tik tos kalbos, kurių žodynus turite įdiegę.</"
-"small>"
+#: ../src/empathy-preferences.ui.h:5
+msgid "Appearance"
+msgstr "Išvaizda"
 
-#: ../src/empathy-preferences.glade.h:7
+#: ../src/empathy-preferences.ui.h:6
 msgid "Automatically _connect on startup "
-msgstr "Paleisties metu automatiškai prisijungti"
+msgstr "Paleidus, automatiškai _prisijungti"
 
-#: ../src/empathy-preferences.glade.h:8
+#: ../src/empathy-preferences.ui.h:7
 msgid "Avatars are user chosen images shown in the contact list"
-msgstr "Paveikslėliai, pasirinkti naudotojų, rodomi bičiulių sąraše."
+msgstr ""
+"Pseudoportretai – tai adresatų sąraše rodomi naudotojų pasirinkti "
+"paveikslėliai"
+
+#: ../src/empathy-preferences.ui.h:8
+msgid "Behavior"
+msgstr "Elgsena"
 
-#: ../src/empathy-preferences.glade.h:9
+#: ../src/empathy-preferences.ui.h:9
 msgid "Chat Th_eme:"
 msgstr "Pokalbio t_ema:"
 
-#: ../src/empathy-preferences.glade.h:10
+#: ../src/empathy-preferences.ui.h:11
 msgid "Disable notifications when _away or busy"
-msgstr "Išjungti pranešimus, kai manęs nėra ar užimtas"
+msgstr "Išjungti pranešimus, kai manęs _nėra ar užsiėmęs(-usi)"
 
-#: ../src/empathy-preferences.glade.h:11
+#: ../src/empathy-preferences.ui.h:12
 msgid "Disable sounds when _away or busy"
-msgstr "Išjungti garsus, kai manęs nėra ar užimtas"
+msgstr "Išjungti garsus, kai manęs _nėra ar užsiėmęs(-usi)"
 
-#: ../src/empathy-preferences.glade.h:12
+#: ../src/empathy-preferences.ui.h:13
+msgid "Enable notifications when a contact comes online"
+msgstr "Įjungti pranešimus, kai prisijungia adresatas"
+
+#: ../src/empathy-preferences.ui.h:14
+msgid "Enable notifications when a contact goes offline"
+msgstr "Įjungti pranešimus, kai atsijungia adresatas"
+
+#: ../src/empathy-preferences.ui.h:15
 msgid "Enable notifications when the _chat is not focused"
-msgstr "Įjungti pranešimus, kai pokalbio langas neaktyvuotas"
+msgstr "Įjungti pranešimus, kai _pokalbio langas nesuaktyvintas"
+
+#: ../src/empathy-preferences.ui.h:16
+msgid "Enable spell checking for languages:"
+msgstr "Įjungti šių kalbų rašybos tikrinimą:"
 
-#: ../src/empathy-preferences.glade.h:13
+#: ../src/empathy-preferences.ui.h:17
 msgid "General"
 msgstr "Bendra"
 
-#: ../src/empathy-preferences.glade.h:14
+#: ../src/empathy-preferences.ui.h:18
+msgid "Geoclue Settings"
+msgstr "Geoclue parametrai"
+
+#: ../src/empathy-preferences.ui.h:19
+msgid "Location"
+msgstr "Vietovė"
+
+#: ../src/empathy-preferences.ui.h:20
+msgid "Not a valid adium theme"
+msgstr "Tai nėra tinkama adium tema"
+
+#: ../src/empathy-preferences.ui.h:21
 msgid "Notifications"
 msgstr "Pranešimai"
 
-#: ../src/empathy-preferences.glade.h:15
+#: ../src/empathy-preferences.ui.h:22
+msgid "Play sound for events"
+msgstr "Groti garsus įvykiams"
+
+#: ../src/empathy-preferences.ui.h:23
 msgid "Preferences"
 msgstr "Nustatymai"
 
-#: ../src/empathy-preferences.glade.h:16
+#: ../src/empathy-preferences.ui.h:24
+msgid "Privacy"
+msgstr "Privatumas"
+
+#: ../src/empathy-preferences.ui.h:25
+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 ""
+"Sumažinus vietovės tikslumą, bus rodomas tik jūsų miestas, sritis ir šalis. "
+"GPS koordinatėms bus pridedama atsitiktinė reikšmė (&#xB1;0.25&#xB0;)."
+
+#: ../src/empathy-preferences.ui.h:26
 msgid "Show _avatars"
-msgstr "Rodyti paveikslėlius"
+msgstr "Rodyti _pseudoportretus"
 
-#: ../src/empathy-preferences.glade.h:17
+#: ../src/empathy-preferences.ui.h:27
 msgid "Show _smileys as images"
-msgstr "Versti šypsenėles į grafinius paveiksliukus"
+msgstr "Rodyti š_ypsenelės kaip paveikslėlius"
 
-#: ../src/empathy-preferences.glade.h:18
+#: ../src/empathy-preferences.ui.h:28
 msgid "Show co_mpact contact list"
-msgstr "Rodyti kompaktišką bičiulių sąrašą"
+msgstr "Rodyti _kompaktišką adresatų sąrašą"
+
+#: ../src/empathy-preferences.ui.h:29
+msgid "Show contact _list in rooms"
+msgstr "Rodyti adresatų _sąrašą kambariuose"
 
-#: ../src/empathy-preferences.glade.h:19
+#: ../src/empathy-preferences.ui.h:30
 msgid "Sort by _name"
-msgstr "Rikiuoti pagal vardą"
+msgstr "Rikiuoti pagal _vardą"
 
-#: ../src/empathy-preferences.glade.h:20
+#: ../src/empathy-preferences.ui.h:31
 msgid "Sort by s_tate"
-msgstr "Rikiuoti pagal būseną"
+msgstr "Rikiuoti pagal _būseną"
 
-#: ../src/empathy-preferences.glade.h:21
+#: ../src/empathy-preferences.ui.h:32
 msgid "Sounds"
 msgstr "Garsai"
 
-#: ../src/empathy-preferences.glade.h:22
+#: ../src/empathy-preferences.ui.h:33
 msgid "Spell Checking"
 msgstr "Rašybos tikrinimas"
 
-#: ../src/empathy-preferences.glade.h:23
+#: ../src/empathy-preferences.ui.h:34
+msgid ""
+"The list of languages reflects only the languages for which you have a "
+"dictionary installed."
+msgstr ""
+"Šiame kalbų sąraše yra tik tos kalbos, kurių žodynus turite įdiegę."
+
+#: ../src/empathy-preferences.ui.h:35
 msgid "Themes"
 msgstr "Temos"
 
-#: ../src/empathy-preferences.glade.h:24
+#: ../src/empathy-preferences.ui.h:36
 msgid "_Enable bubble notifications"
-msgstr "Įjungti burbulinius pranešimus"
+msgstr "Į_jungti burbulinius pranešimus"
 
-#: ../src/empathy-preferences.glade.h:25
+#: ../src/empathy-preferences.ui.h:37
 msgid "_Enable sound notifications"
-msgstr "Įjungti garsinius pranešimus"
+msgstr "Į_jungti garsinius pranešimus"
 
-#: ../src/empathy-preferences.glade.h:26
+#: ../src/empathy-preferences.ui.h:38
 msgid "_Open new chats in separate windows"
-msgstr "Atverti naujus pokalbius atskiruose languose"
+msgstr "_Atverti naujus pokalbius atskiruose languose"
+
+#: ../src/empathy-preferences.ui.h:39
+msgid "_Publish location to my contacts"
+msgstr "_Rodyti vietovę mano adresatams"
 
-#: ../src/empathy-status-icon.glade.h:1
+#: ../src/empathy-preferences.ui.h:40
+msgid "_Reduce location accuracy"
+msgstr "_Sumažinti vietovės tikslumą"
+
+#: ../src/empathy-status-icon.ui.h:1
 msgid "Status"
 msgstr "Būsena"
 
-#: ../src/empathy-status-icon.glade.h:3
+#: ../src/empathy-status-icon.ui.h:3
 msgid "_Quit"
-msgstr "Išeiti"
+msgstr "Iš_eiti"
 
-#: ../src/empathy-status-icon.glade.h:4
+#: ../src/empathy-status-icon.ui.h:4
 msgid "_Show Contact List"
-msgstr "Rodyti Bičiulių Sąrašą"
+msgstr "_Rodyti adresatų sąrašą"
 
-#: ../src/empathy-tube-dispatch.c:364
+#: ../src/empathy-tube-dispatch.c:375
 #, c-format
 msgid "Unable to start application for service %s: %s"
-msgstr "Nepavyko paleisti programos %s tarnybai: %s"
+msgstr "Nepavyko paleisti programos tarnybai %s: %s"
 
-#: ../src/empathy-tube-dispatch.c:435
+#: ../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 "Pasiųstas kvietimas į tarnybą %s, bet nėra įdiegta reikiama programa."
-
-#~ msgid "Enable popup when contact is available"
-#~ msgstr "Įjungti iššokantį langą, rodomą bičiuliui prisijungus"
-
-#~ msgid "Enable sound when busy"
-#~ msgstr "Įjungti garsus, kai aš užsiėmęs"
-
-#~ msgid "Closed"
-#~ msgstr "Užvertas"
-
-#~ msgid "End this call?"
-#~ msgstr "Nutraukti skambutį?"
-
-#~ msgid "Closing this window will end the call in progress."
-#~ msgstr "Uždarius langą, bus nutraukta skambinimo eiga."
-
-#~ msgid "_End Call"
-#~ msgstr "_Baigti"
-
-#~ msgid "Empathy Call"
-#~ msgstr "Kvietimas"
-
-#~ msgid "Readying"
-#~ msgstr "Ruošiama"
-
-#~ msgid "%s - Empathy Call"
-#~ msgstr "%s - Skambina"
-
-#~ msgid ""
-#~ "Incoming call from %s rejected because there is already a running call."
-#~ msgstr "Įeinantis ryšys su %s atmestas, nes kalbamasi kita linija."
+msgstr ""
+"Pasiųstas kvietimas į tarnybą %s, tačiau neįdiegta jai reikalinga programa"
 
-#~ msgid "#"
-#~ msgstr "#"
+#: ../src/empathy-call-window-fullscreen.ui.h:1
+msgid "gtk-leave-fullscreen"
+msgstr ""
 
-#~ msgid "*"
-#~ msgstr "*"
+#: ../src/empathy-map-view.ui.h:1
+msgid "Contact Map View"
+msgstr "Adresatų žemėlapio rodinys"
 
-#~ msgid "0"
-#~ msgstr "0"
+#: ../src/empathy-debug-dialog.c:111 ../src/empathy-debug-dialog.c:1083
+msgid "Error"
+msgstr "Klaida"
 
-#~ msgid "1"
-#~ msgstr "1"
+#: ../src/empathy-debug-dialog.c:114 ../src/empathy-debug-dialog.c:1077
+msgid "Critical"
+msgstr "Kritinė"
 
-#~ msgid "2"
-#~ msgstr "2"
+#: ../src/empathy-debug-dialog.c:117 ../src/empathy-debug-dialog.c:1071
+msgid "Warning"
+msgstr "Perspėjimas"
 
-#~ msgid "3"
-#~ msgstr "3"
+#: ../src/empathy-debug-dialog.c:120 ../src/empathy-debug-dialog.c:1065
+#: ../src/empathy-debug-dialog.c:1113
+msgid "Message"
+msgstr "Pranešimas"
 
-#~ msgid "4"
-#~ msgstr "4"
+#: ../src/empathy-debug-dialog.c:123 ../src/empathy-debug-dialog.c:1059
+msgid "Info"
+msgstr "Informacija"
 
-#~ msgid "5"
-#~ msgstr "5"
+#: ../src/empathy-debug-dialog.c:126 ../src/empathy-debug-dialog.c:1053
+msgid "Debug"
+msgstr "Derinimas"
 
-#~ msgid "6"
-#~ msgstr "6"
+#: ../src/empathy-debug-dialog.c:845
+msgid "Save"
+msgstr "Irašyti"
 
-#~ msgid "7"
-#~ msgstr "7"
+#: ../src/empathy-debug-dialog.c:948
+msgid "Debug Window"
+msgstr "Derinimo langas"
 
-#~ msgid "8"
-#~ msgstr "8"
+#: ../src/empathy-debug-dialog.c:1021
+msgid "Pause"
+msgstr "Pauzė"
 
-#~ msgid "9"
-#~ msgstr "9"
+#: ../src/empathy-debug-dialog.c:1033
+msgid "Level "
+msgstr "Lygis "
 
-#~ msgid "<b>Keypad</b>"
-#~ msgstr "<b>Skaičių klaviatūra</b>"
+#: ../src/empathy-debug-dialog.c:1102
+msgid "Time"
+msgstr "Laikas"
 
-#~ msgid "Invitation Error"
-#~ msgstr "Pakvietimo Klaida:"
+#: ../src/empathy-debug-dialog.c:1104
+msgid "Domain"
+msgstr "Sritis"
 
-#~ msgid "<b>Audio</b>"
-#~ msgstr "<b>Garsai</b>"
+#: ../src/empathy-debug-dialog.c:1106
+msgid "Category"
+msgstr "Kategorija"
 
-#~ msgid "<b>Visual</b>"
-#~ msgstr "<b>Vaizdas</b>"
+#: ../src/empathy-debug-dialog.c:1108
+msgid "Level"
+msgstr "Lygis"
 
-#~ msgid "Enable sounds when _busy"
-#~ msgstr "Įjungti garsus, kai aš _užsiėmęs"
+#: ../src/empathy-debug-dialog.c:1140
+msgid ""
+"The selected connection manager does not support the remote debugging "
+"extension."
+msgstr "Pasirinktoji ryšių valdyklė nepalaiko nuotolinio derinimo plėtinio."
diff --git a/po/or.po b/po/or.po
new file mode 100644 (file)
index 0000000..d89ee2e
--- /dev/null
+++ b/po/or.po
@@ -0,0 +1,2490 @@
+# translation of empathy.po.master.or.po to Oriya
+# Oriya translation of empathy.
+# Copyright (C) 2009 empathy's COPYRIGHT HOLDER
+# This file is distributed under the same license as the empathy package.
+#
+# Manoj Kumar Giri <mgiri@redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: empathy.po.master.or\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=empathy&component=general\n"
+"POT-Creation-Date: 2009-07-01 13:43+0000\n"
+"PO-Revision-Date: 2009-07-01 19:21+0530\n"
+"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
+"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../data/empathy.desktop.in.in.h:1
+msgid "Empathy Instant Messenger"
+msgstr "Empathy ତୀବ୍ର ସନ୍ଦେଶ ବାହକ"
+
+#: ../data/empathy.desktop.in.in.h:2
+msgid "Send and receive instant messages"
+msgstr "ତୁରନ୍ତ ସନ୍ଦେଶଗୁଡ଼ିକୁ ପଠାନ୍ତୁ ଏବଂ ଗ୍ରହଣ କରନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:1
+msgid "Always open a separate chat window for new chats."
+msgstr "ନୂତନ ଚାର୍ଟ ପାଇଁ ସର୍ବଦା ଭିନ୍ନ ଭିନ୍ନ ଚାର୍ଟ ୱିଣ୍ଡୋ ଖୋଲନ୍ତୁ।"
+
+#: ../data/empathy.schemas.in.h:2
+msgid ""
+"Character to add after nickname when using nick completion (tab) in group "
+"chat."
+msgstr "ଉପନାମ ପରେ ଯୋଡ଼ିବାକୁ ଥିବା ଅକ୍ଷର ଯେତେବେଳେ ସମୂହ ଚାର୍ଟରେ ଉପନାମ ସମ୍ପୂର୍ଣ୍ଣ ଟ୍ୟାବ ବ୍ୟବହାର କରିଥାଏ।"
+
+#: ../data/empathy.schemas.in.h:3
+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)।"
+
+#: ../data/empathy.schemas.in.h:5
+msgid "Compact contact list"
+msgstr "ସୁସଂଗତ ସମ୍ପର୍କ ତାଲିକା"
+
+#: ../data/empathy.schemas.in.h:6
+msgid "Contact list sort criterium"
+msgstr "ସମ୍ପର୍କ ତାଲିକା ସଜାଡ଼ିବା ମାନଦଣ୍ଡ"
+
+#: ../data/empathy.schemas.in.h:7
+msgid "Default directory to select an avatar image from"
+msgstr "ଅବତାର ଚିତ୍ର ଚୟନ କରିବା ପାଇଁ ପୂର୍ବ ନିର୍ଦ୍ଧାରିତ ଡ଼ିରେକ୍ଟରୀ"
+
+#: ../data/empathy.schemas.in.h:8
+msgid "Disable popup notifications when away"
+msgstr "ଦୂରରେ ଥିବା ସମୟରେ ପପଅପ ୱିଣ୍ଡୋ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:9
+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 "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
+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 "Empathy ଚାର୍ଟ ୱିଣ୍ଡୋ ଚିତ୍ର ସଂକେତ ପରି ସମ୍ପର୍କର ଅବତାରକୁ ବ୍ୟବହାର କରିବା ଉଚିତ"
+
+#: ../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:21
+msgid "Hide main window"
+msgstr "ମୁଖ୍ଯ ୱିଣ୍ଡୋ ଲୁଚାନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:22
+msgid "Hide the main window."
+msgstr "ମୁଖ୍ଯ ୱିଣ୍ଡୋ ଲୁଚାନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:23
+msgid "NetworkManager should be used"
+msgstr "ନେଟୱର୍କ ପରିଚାଳକଙ୍କୁ ବ୍ୟବହାର କରିବା ଉଚିତ"
+
+#: ../data/empathy.schemas.in.h:24
+msgid "Nick completed character"
+msgstr "ଉପନାମ ସମ୍ପୂର୍ଣ୍ଣ ଅକ୍ଷର"
+
+#: ../data/empathy.schemas.in.h:25
+msgid "Open new chats in separate windows"
+msgstr "ନୁଆ ଚାଟଗୁଡ଼ିକ ଅଲଗା ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ"
+
+#: ../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: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 "Popup notifications when a contact sign in"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:37
+msgid "Popup notifications when a contact sign out"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:38
+msgid "Salut account is created"
+msgstr "ସେଲ୍ୟୁଟ ଖାତା ନିର୍ମିତ ହୋଇଛି"
+
+#: ../data/empathy.schemas.in.h:39
+msgid "Show avatars"
+msgstr "ଅବତାର ଦେଖାନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:40
+msgid "Show contact list in rooms"
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:41
+msgid "Show hint about closing the main window"
+msgstr "ମୁଖ୍ଯ ୱିଣ୍ଡୋ ବନ୍ଦ କରିବା ପାଇଁ ଆଭାସ ଦିଅନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:42
+msgid "Show offline contacts"
+msgstr "ଅଫଲାଇନ ସମ୍ପର୍କ ଦେଖାଅ"
+
+#: ../data/empathy.schemas.in.h:43
+msgid "Spell checking languages"
+msgstr "ବନାନ ଯାଞ୍ଚକାରୀ ଭାଷାଗୁଡ଼ିକ"
+
+#: ../data/empathy.schemas.in.h:44
+msgid "The default folder to save file transfers in."
+msgstr "ଫାଇଲ ପରିବହନକୁ ସଂରକ୍ଷଣ କରିବା ପାଇଁ ପୂର୍ବନିର୍ଦ୍ଧାରିତ ଫୋଲଡର।"
+
+#: ../data/empathy.schemas.in.h:45
+msgid "The last directory that an avatar image was chosen from."
+msgstr "ଅଭତାର ପ୍ରତିଛବି ଦ୍ୱାରା ବଛାଯାଇଥିବା ଶେଷ ଡିରେକ୍ଟୋରୀ।"
+
+#: ../data/empathy.schemas.in.h:46
+msgid "The theme that is used to display the conversation in chat windows."
+msgstr "ଚାର୍ଟ ୱିଣ୍ଡୋରେ ବାର୍ତ୍ତାଳାପକୁ ଦର୍ଶାଯାଇବା ପାଇଁ ବ୍ୟବହୃତ ପ୍ରସଙ୍ଗ।"
+
+#: ../data/empathy.schemas.in.h:47
+msgid "Use graphical smileys"
+msgstr "ଆଲେଖୀ ସ୍ମାଇଲିଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:48
+msgid "Use notification sounds"
+msgstr "ବିଜ୍ଞପ୍ତ ଶବ୍ଦ ଉପଯୋଗ କରନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:49
+msgid "Use theme for chat rooms"
+msgstr "ଚାଟ ଘରଗୁଡ଼ିକ ପାଇଁ ପ୍ରସଙ୍ଗ ଉପଯୋଗ କରନ୍ତୁ"
+
+#: ../data/empathy.schemas.in.h:50
+msgid "Whether or not Empathy can publish the user's location to his contacts."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:51
+msgid "Whether or not Empathy can use the GPS to guess the location."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:52
+msgid "Whether or not Empathy can use the cellular network to guess the location."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:53
+msgid "Whether or not Empathy can use the network to guess the location."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:54
+msgid ""
+"Whether or not Empathy has asked about importing accounts from other "
+"programs."
+msgstr "Empathy ଅନ୍ୟ ପ୍ରଗ୍ରାମଗୁଡ଼ିକରୁ ଖାତା ଆମଦାନୀ ପାଇଁ ଅନୁରୋଧ କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:55
+msgid ""
+"Whether or not Empathy should automatically log in to your accounts on "
+"startup."
+msgstr "ଆରମ୍ଭରେ Empathy ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଆପଣଙ୍କ ଖାତାରେ ଲଗଇନ ହେବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:56
+msgid ""
+"Whether or not Empathy should reduce the location's accuracy for privacy "
+"reasons."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:57
+msgid ""
+"Whether or not Empathy should use the avatar of the contact as the chat "
+"window icon."
+msgstr "Empathy ସମ୍ପର୍କର ଅଭତାରକୁ ଚାର୍ଟ ୱିଣ୍ଡୋ ଚିତ୍ରସଂକେତ ଭାବରେ ବ୍ୟବହାର କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:58
+msgid "Whether or not the Salut account has been created on the first Empathy run."
+msgstr "ପ୍ରଥମ Empathy ଚାଳନାରେ ସେଲ୍ୟୁଟ ଖାତା ନିର୍ମାଣ କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:59
+msgid ""
+"Whether or not the network manager should be used to automatically "
+"disconnect/reconnect."
+msgstr "ନେଟୱର୍କ ପରିଚାଳକ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ/ସଂଯୋଗ ସ୍ଥାପନ କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:60
+msgid ""
+"Whether or not to check words typed against the languages you want to check "
+"with."
+msgstr "ଆପଣ ଯାଞ୍ଚ କରିବାକୁ ଚାହୁଁଥିବା ଭାଷାର ଶବ୍ଦ ପ୍ରକାରକୁ ଯାଞ୍ଚ କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:61
+msgid "Whether or not to convert smileys into graphical images in conversations."
+msgstr "ବାର୍ତ୍ତାଳାପରେ ଆଲେଖୀ ପ୍ରତିଛବିଗୁଡ଼ିକୁ ସ୍ମାଇଲି ପରିବର୍ତ୍ତନ କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:62
+msgid "Whether or not to play a sound to notify for contacts logging in the network."
+msgstr "ନେଟୱର୍କରେ ଲଗଇନ ହେଉଥିବା ସମ୍ପର୍କଗୁଡ଼ିକୁ ବିଜ୍ଞପ୍ତି ଦେବା ପାଇଁ ଧ୍ୱନି ଚଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:63
+msgid ""
+"Whether or not to play a sound to notify for contacts logging off the "
+"network."
+msgstr "ନେଟୱର୍କରେ ଲଗଅଫ ହେଉଥିବା ସମ୍ପର୍କଗୁଡ଼ିକୁ ବିଜ୍ଞପ୍ତି ଦେବା ପାଇଁ ଧ୍ୱନି ଚଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:64
+msgid "Whether or not to play a sound to notify for events."
+msgstr "ଘଟଣାଗୁଡ଼ିକ ପାଇଁ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:65
+msgid "Whether or not to play a sound to notify for incoming messages."
+msgstr "ଆସୁଥିବା ସନ୍ଦେଶଗୁଡ଼ିକ ପାଇଁ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:66
+msgid "Whether or not to play a sound to notify for new conversations."
+msgstr "ନୂତନ ବାର୍ତ୍ତାଳାପ ପାଇଁ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:67
+msgid "Whether or not to play a sound to notify for outgoing messages."
+msgstr "ପଠାଯାଉଥିବା ସନ୍ଦେଶଗୁଡ଼ିକ ପାଇଁ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:68
+msgid "Whether or not to play a sound when logging in a network."
+msgstr "ନେଟୱର୍କରେ ଲଗଇନ ହେବା ସମୟରେ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:69
+msgid "Whether or not to play a sound when logging off a network."
+msgstr "ନେଟୱର୍କରେ ଲଗଅଫ ହେବା ସମୟରେ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:70
+msgid "Whether or not to play sound notifications when away or busy."
+msgstr "ଦୂରରେ ଥିବା ସମୟରେ କିମ୍ବା ବ୍ୟସ୍ତ ଥିବା ସମୟରେ ବିଜ୍ଞପ୍ତି ଦେବାକୁ ଧ୍ୱନି ଚାଲାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:71
+msgid "Whether or not to show a popup notification when a contact goes offline."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:72
+msgid "Whether or not to show a popup notification when a contact goes online."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:73
+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:74
+msgid "Whether or not to show a popup notification when receiving a new message."
+msgstr "ନୂତନ ସନ୍ଦେଶ ଗ୍ରହଣ କରିବା ସମୟରେ ପପଅପ ବିଜ୍ଞପ୍ତି ଦର୍ଶାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:75
+msgid ""
+"Whether or not to show avatars for contacts in the contact list and chat "
+"windows."
+msgstr "ସମ୍ପର୍କ ତାଲିକା ଏବଂ ଚାର୍ଟ ୱିଣ୍ଡୋରେ ସମ୍ପର୍କଗୁଡ଼ିକ ପାଇଁ ଅଭତାରଗୁଡ଼ିକୁ ଦର୍ଶାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:76
+msgid "Whether or not to show contacts that are offline in the contact list."
+msgstr "ସମ୍ପର୍କ ତାଲିକାରେ ଅଫଲାଇନ ଥିବା ସମ୍ପର୍କଗୁଡ଼ିକୁ ଦର୍ଶାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:77
+msgid "Whether or not to show popup notifications when away or busy."
+msgstr "ଦୂରରେ ଥିବା ସମୟରେ କିମ୍ବା ବ୍ୟସ୍ତ ଥିବା ସମୟରେ ପପଅପ ବିଜ୍ଞପ୍ତିକୁ ଦର୍ଶାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:78
+msgid "Whether or not to show the contact list in chat rooms."
+msgstr ""
+
+#: ../data/empathy.schemas.in.h:79
+msgid ""
+"Whether or not to show the message dialog about closing the main window with "
+"the 'x' button in the title bar."
+msgstr ""
+"ଶୀର୍ଷକ ପଟିରେ 'x' ବଟନ ସହିତ ମୂଖ୍ୟ ୱିଣ୍ଡୋକୁ ବନ୍ଦ କରିବା ପରେ ସନ୍ଦେଶ ସଂଳାପକୁ "
+"ଦର୍ଶାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:80
+msgid "Whether to show the contact list in compact mode or not."
+msgstr "ସମ୍ପର୍କ ତାଲିକାକୁ ସଂଗୁପ୍ତ ଧାରାରେ ଦର୍ଶାଇବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:81
+msgid "Whether to use the theme for chat rooms or not."
+msgstr "ଚାର୍ଟରୁମ ପାଇଁ ପ୍ରସଙ୍ଗକୁ ବ୍ୟବହାର କରିବା ଉଚିତ କି ନୁହଁ।"
+
+#: ../data/empathy.schemas.in.h:82
+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 ""
+"ଯୋଗାଯୋଗ ତାଲିକାକୁ ସଜାଡ଼ିବା ସମୟରେ କେଉଁ ମାନଦଣ୍ଡକୁ ବ୍ୟବହାର କରିବା ଉଚିତ। ପୂର୍ବନିର୍ଦ୍ଧାରିତଟି ହେଉଛି "
+"ସମ୍ପର୍କନାମ ସହିତ ମୂଲ୍ୟ \"ନାମ\"କୁ ସଜାଡ଼ିବା। \"state\" ର ଗୋଟିଏ ମୂଲ୍ୟକୁ ଅବସ୍ଥା ଦ୍ୱାରା ଯୋଗାଯୋଗ ତାଲିକା "
+"ଅନୁସାରେ ସଜାଡ଼ିବା।"
+
+#: ../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:289
+msgid "People nearby"
+msgstr "ନିକଟବର୍ତୀ ଲୋକ"
+
+#: ../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:265
+msgid "Available"
+msgstr "ଉପଲବ୍ଧ"
+
+#: ../libempathy/empathy-utils.c:267
+msgid "Busy"
+msgstr "ବ୍ଯସ୍ତ"
+
+#: ../libempathy/empathy-utils.c:270
+msgid "Away"
+msgstr "ଅନୁପସ୍ଥିତ"
+
+#: ../libempathy/empathy-utils.c:272
+msgid "Hidden"
+msgstr "ଲୁକ୍କାଇତ"
+
+#: ../libempathy/empathy-utils.c:274
+msgid "Offline"
+msgstr "ଅଫଲାଇନ"
+
+#: ../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] "%d ମିନଟ ପୂର୍ବେ"
+msgstr[1] "%d ମିନଟ ପୂର୍ବେ"
+
+#: ../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] "%d ଦିନ ପୂର୍ବେ"
+msgstr[1] "%d ଦିନ ପୂର୍ବେ"
+
+#: ../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] "%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:354
+#, c-format
+msgid "%s:"
+msgstr "%s:"
+
+#: ../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
+msgid "Advanced"
+msgstr "ଉନ୍ନତ"
+
+#: ../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.ui.h:3
+msgid "Screen _Name:"
+msgstr "ପରଦା ନାମ (_N):"
+
+#: ../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.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.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 "ଲଗଇନ୍ I_D: "
+
+#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:2
+msgid "ICQ _UIN:"
+msgstr "ICS_UIN:"
+
+#: ../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:240
+msgid "New Network"
+msgstr "ନୁଆ ଜାଲକ"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1
+msgid "Charset:"
+msgstr "ଅକ୍ଷରମାଳା:"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2
+msgid "Network"
+msgstr "ନେଟୱର୍କ"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3
+msgid "Network:"
+msgstr "ନେଟଓ୍ବାର୍କ:"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4
+msgid "Nickname:"
+msgstr "ଡାକ ନାମ:"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5
+msgid "Password:"
+msgstr "ପ୍ରବେଶ ସଙ୍କେତ:"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
+msgid "Quit message:"
+msgstr "ବିଦାୟ ସନ୍ଦେଶ"
+
+#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
+msgid "Real name:"
+msgstr "ପ୍ରକ୍ରୁତ ନାମ:"
+
+#: ../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:"
+msgstr "ଅଗ୍ରାଧିକାର (_o):"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:6
+msgid "Reso_urce:"
+msgstr "ସମ୍ବଳ (_u):"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:7
+msgid "Use old SS_L"
+msgstr "ପୁରୁଣା SSL ଉପଯୋଗ କରନ୍ତୁ (_L)"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:8
+msgid "_Encryption required (TLS/SSL)"
+msgstr "ସଂଗୁପ୍ତ ଆବଶ୍ୟକ (TLS/SSL) (_E)"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:9
+msgid "_Ignore SSL certificate errors"
+msgstr "SSL ପ୍ରମାଣପତ୍ର ତ୍ରୁଟିଗୁଡ଼ିକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ (_I)"
+
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:2
+msgid "_Email:"
+msgstr "ଇ-ମେଲ (_E):"
+
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:3
+msgid "_First Name:"
+msgstr "ପ୍ରଥମ ନାମ (_F):"
+
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:4
+msgid "_Jabber ID:"
+msgstr "ଜବ୍ବର ID (_J):"
+
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:5
+msgid "_Last Name:"
+msgstr "ଶେଷ ନାମ (_L):"
+
+#: ../libempathy-gtk/empathy-account-widget-salut.ui.h:6
+msgid "_Nickname:"
+msgstr "ଡାକ ନାମ (_N):"
+
+#: ../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.ui.h:3
+msgid "Discover STUN"
+msgstr "STUN କୁ ଆବିଷ୍କାର କରନ୍ତୁ"
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:5
+msgid "STUN Server:"
+msgstr " STUN ସର୍ଭର"
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
+msgid "STUN port:"
+msgstr "STUN ସଂଯୋଗିକୀ:"
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
+msgid "_Username:"
+msgstr "ଚାଳକ ନାମ (_U):"
+
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:3
+msgid "Use _Yahoo Japan"
+msgstr "Yahoo ଜାପାନ ଉପଯୋଗ କରନ୍ତୁ (_Y)"
+
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:4
+msgid "Yahoo I_D:"
+msgstr "Yahoo I_D:"
+
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:6
+msgid "_Ignore conference and chatroom invitations"
+msgstr "ସମ୍ମେଳନ ଏବଂ ଚାର୍ଟକକ୍ଷ ଆମନ୍ତ୍ରଣଗୁଡ଼ିକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ (_I)"
+
+#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:8
+msgid "_Room List locale:"
+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: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 "ନିଜର ଅବତାର ପ୍ରତିଛବି ଚୟନ କରନ୍ତୁ"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:936
+msgid "No Image"
+msgstr "କୌଣସି ପ୍ରତିଛବି ନାହିଁ"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:998
+msgid "Images"
+msgstr "ପ୍ରତିଛବି"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1002
+msgid "All Files"
+msgstr "ସମସ୍ତ ଫାଇଲ"
+
+#: ../libempathy-gtk/empathy-avatar-image.c:324
+msgid "Click to enlarge"
+msgstr "ବଡ଼କରିବା ପାଇଁ କ୍ଲିକ କରନ୍ତୁ"
+
+#: ../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:542
+msgid "invalid contact"
+msgstr "ତ୍ରୁଟିପୁର୍ଣ୍ଣ ସମ୍ପର୍କ"
+
+#: ../libempathy-gtk/empathy-chat.c:545
+msgid "permission denied"
+msgstr "ଅନୁମତି ନାହିଁ"
+
+#: ../libempathy-gtk/empathy-chat.c:548
+msgid "too long message"
+msgstr "ଅତ୍ଯାଧିକ ଲମ୍ବା ସନ୍ଦେଶ"
+
+#: ../libempathy-gtk/empathy-chat.c:551
+msgid "not implemented"
+msgstr "ନିଷ୍ପାଦନ କରାଯାଇ ନାହିଁ"
+
+#: ../libempathy-gtk/empathy-chat.c:554
+msgid "unknown"
+msgstr "ଅଜଣା"
+
+#: ../libempathy-gtk/empathy-chat.c:558
+#, c-format
+msgid "Error sending message '%s': %s"
+msgstr "ସନ୍ଦେଶ ପଠାଇବାରେ ତ୍ରୁଟି '%s': %s"
+
+#: ../libempathy-gtk/empathy-chat.c:588
+#, c-format
+msgid "Topic set to: %s"
+msgstr "ରେ ବିଷୟ ସେଟ କରାଯାଇଥାଏ: %s"
+
+#: ../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:1013
+msgid "Insert Smiley"
+msgstr "Smiley କୁ ଭର୍ତ୍ତି କରନ୍ତୁ"
+
+#. send button
+#: ../libempathy-gtk/empathy-chat.c:1031
+#: ../libempathy-gtk/empathy-ui-utils.c:1475
+msgid "_Send"
+msgstr "ପଠାନ୍ତୁ (_S)"
+
+#: ../libempathy-gtk/empathy-chat.c:1065
+msgid "_Spelling Suggestions"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-chat.c:1179
+#, c-format
+msgid "%s has joined the room"
+msgstr "%s କଠୋରିରେ ଯୋଗଦାନ କରିଛନ୍ତି"
+
+#: ../libempathy-gtk/empathy-chat.c:1182
+#, c-format
+msgid "%s has left the room"
+msgstr "%s କଠୋରିକୁ ପ୍ରସ୍ଥାନ କରିସାରିଛନ୍ତି"
+
+#: ../libempathy-gtk/empathy-chat.c:1313 ../src/empathy-call-window.c:1226
+msgid "Disconnected"
+msgstr "ଅସଂଯୋଜିତ"
+
+#: ../libempathy-gtk/empathy-chat.c:1742
+msgid "Connected"
+msgstr "ସଂଯୋଗିତ"
+
+#: ../libempathy-gtk/empathy-chat.c:1792
+#: ../libempathy-gtk/empathy-log-window.c:502
+msgid "Conversation"
+msgstr "କଥୋପକଥନ"
+
+#: ../libempathy-gtk/empathy-chat.ui.h:1 ../src/empathy-chat-window.c:472
+msgid "Topic:"
+msgstr "ବିଷୟ:"
+
+#: ../libempathy-gtk/empathy-chat-text-view.c:316
+msgid "_Copy Link Address"
+msgstr "ସଂଯୋଗ ଠିକଣାକୁ ନକଲ କରନ୍ତୁ (_C)"
+
+#: ../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:421
+msgid "%A %B %d %Y"
+msgstr "%A %B %d %Y"
+
+#: ../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:289
+msgid "Personal Information"
+msgstr "ବ୍ଯକ୍ତିଗତ ସୂଚନା"
+
+#: ../libempathy-gtk/empathy-contact-dialogs.c:384
+msgid "New Contact"
+msgstr "ନୂତନ ସମ୍ପର୍କ"
+
+#: ../libempathy-gtk/empathy-contact-dialogs.ui.h:1
+msgid "Decide _Later"
+msgstr "ପରେ ସିଦ୍ଧାନ୍ତ କରନ୍ତୁ (_L)"
+
+#: ../libempathy-gtk/empathy-contact-dialogs.ui.h:2
+msgid "Subscription Request"
+msgstr "କ୍ରୟ ଅନୁରୋଧ"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:1375
+#, c-format
+msgid "Do you really want to remove the group '%s'?"
+msgstr "ଆପଣ ପ୍ରକୃତରେ ସେହି ଶ୍ରେଣୀ '%s'କୁ କାଢ଼ିବାକୁ ଚାହୁଁଛନ୍ତି କି?"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:1377
+msgid "Removing group"
+msgstr "ସମୂହ କଢ଼ାହେଉଛି"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:1424
+#: ../libempathy-gtk/empathy-contact-list-view.c:1502
+msgid "_Remove"
+msgstr "ଅପସାରଣ କରନ୍ତୁ (_R)"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:1454
+#, c-format
+msgid "Do you really want to remove the contact '%s'?"
+msgstr "ଆପଣ ପ୍ରକୃତରେ ସେହି ସମ୍ପର୍କ '%s'କୁ କାଢ଼ିବାକୁ ଚାହୁଁଛନ୍ତି କି?"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:1456
+msgid "Removing contact"
+msgstr "ସମ୍ପର୍କ କଢ଼ାହେଉଛି"
+
+#: ../libempathy-gtk/empathy-contact-menu.c:135
+#: ../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 ""
+
+#: ../libempathy-gtk/empathy-contact-menu.c:198
+msgctxt "menu item"
+msgid "_Video Call"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-menu.c:237
+msgid "_View Previous Conversations"
+msgstr "ପୁର୍ବତନ କଥୋପକଥନ ଦେଖନ୍ତୁ (_V)"
+
+#: ../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:314
+#: ../src/empathy-main-window.ui.h:11
+msgid "_Edit"
+msgstr "ସମ୍ପାଦନ କରନ୍ତୁ (_E)"
+
+#: ../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:496
+msgid "Unable to save avatar"
+msgstr "ଅବତାର ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:979
+msgid "Select"
+msgstr "ମନୋନୀତ କର"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:988
+#: ../src/empathy-main-window.c:903
+msgid "Group"
+msgstr "ସମୂହ"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1239
+msgid "Country ISO Code:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1241
+msgid "Country:"
+msgstr "ଦେଶ:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1243
+msgid "State:"
+msgstr "ସ୍ଥିତି:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1245
+msgid "City:"
+msgstr "ମହାନଗର:"
+
+#: ../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 ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:1345
+msgid "<b>Location</b>, "
+msgstr ""
+
+#: ../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
+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:886
+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 "ଇ-ମେଲ:"
+
+#: ../libempathy-gtk/empathy-contact-widget.ui.h:10
+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: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 "ଓ.ଏସ:"
+
+#: ../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:510
+msgid "Server"
+msgstr "ସେବକ"
+
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:525
+msgid "Port"
+msgstr "ସଂଯୋଗିକୀ"
+
+#: ../libempathy-gtk/empathy-irc-network-dialog.c:538
+msgid "SSL"
+msgstr "SSL"
+
+#: ../libempathy-gtk/empathy-log-window.c:495
+#: ../src/empathy-import-dialog.c:285
+msgid "Account"
+msgstr "ହିସାବ ଖାତା"
+
+#: ../libempathy-gtk/empathy-log-window.c:512
+msgid "Date"
+msgstr "ତାରିଖ"
+
+#: ../libempathy-gtk/empathy-log-window.ui.h:1
+msgid "Conversations"
+msgstr "କଥୋପକଥନ"
+
+#: ../libempathy-gtk/empathy-log-window.ui.h:2
+msgid "Previous Conversations"
+msgstr "ପୁର୍ବତନ କଥୋପକଥନଗୁଡ଼ିକ"
+
+#: ../libempathy-gtk/empathy-log-window.ui.h:3
+msgid "Search"
+msgstr "ଖୋଜନ୍ତୁ"
+
+#: ../libempathy-gtk/empathy-log-window.ui.h:4
+msgid "_For:"
+msgstr "ପାଇଁ (_F):"
+
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:2
+msgid "C_all"
+msgstr "କ_ଲ"
+
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:3
+msgid "C_hat"
+msgstr "ଆଳାପ (_h)"
+
+#: ../libempathy-gtk/empathy-new-message-dialog.ui.h:4
+msgid "Contact ID:"
+msgstr "ସମ୍ପର୍କ ID:"
+
+#: ../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
+msgid "Custom Message..."
+msgstr ""
+
+#: ../libempathy-gtk/empathy-presence-chooser.c:227
+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
+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:1017
+msgid "Custom messages..."
+msgstr "ଇଚ୍ଛାରୂପ ସନ୍ଦେଶଗୁଡ଼ିକ..."
+
+#: ../libempathy-gtk/empathy-sound.c:51
+msgid "Received an instant message"
+msgstr "ଗୋଟିଏ ତୁରନ୍ତ ସନ୍ଦେଶ ଗ୍ରହଣ କରିଛି"
+
+#: ../libempathy-gtk/empathy-sound.c:53
+msgid "Sent an instant message"
+msgstr "ଗୋଟିଏ ତୁରନ୍ତ ସନ୍ଦେଶ ପଠାଇଛି"
+
+#: ../libempathy-gtk/empathy-sound.c:55
+msgid "Incoming chat request"
+msgstr "ଆସୁଥିବା ଚାର୍ଟ ଅନୁରୋଧ"
+
+#: ../libempathy-gtk/empathy-sound.c:57
+msgid "Contact connected"
+msgstr "ସମ୍ପର୍କ ସ୍ଥାପିତ"
+
+#: ../libempathy-gtk/empathy-sound.c:59
+msgid "Contact disconnected"
+msgstr "ସମ୍ପର୍କ ବିଚ୍ଛିନ୍ନ"
+
+#: ../libempathy-gtk/empathy-sound.c:61
+msgid "Connected to server"
+msgstr "ସର୍ଭର ସହ ସଂଯୋଗିତ"
+
+#: ../libempathy-gtk/empathy-sound.c:63
+msgid "Disconnected from server"
+msgstr "ସର୍ଭରରୁ ସଂଯୋଗ ଛିନ୍ନ ହୋଇଛି"
+
+#: ../libempathy-gtk/empathy-sound.c:65
+msgid "Incoming voice call"
+msgstr "ଆସୁଥିବା ସ୍ୱର କଲ"
+
+#: ../libempathy-gtk/empathy-sound.c:67
+msgid "Outgoing voice call"
+msgstr "ଯାଉଥିବା ସ୍ୱର କଲ"
+
+#: ../libempathy-gtk/empathy-sound.c:69
+msgid "Voice call ended"
+msgstr "ସ୍ୱର କଲ ସମାପ୍ତ ହୋଇଛି"
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:362
+msgid "Enter Custom Message"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.c:521
+msgid "Edit Custom Messages"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:1
+msgid "Add _New Preset"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:2
+msgid "Saved Presets"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:3
+msgid "gtk-add"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:4
+msgid "gtk-remove"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-theme-manager.c:66
+msgid "Classic"
+msgstr "ଚିରପ୍ରତିଷ୍ଠିତ"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:67
+msgid "Simple"
+msgstr "ସରଳ"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:68
+msgid "Clean"
+msgstr "ସଫା"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:69
+msgid "Blue"
+msgstr "ନୀଳ"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:71
+msgid "Adium"
+msgstr "ଅଡିଅମ"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1377
+msgid "Unable to open URI"
+msgstr "ୟୁ.ଆର୍.ଆଇ. ଖୋଲିବାରେ ଅସମର୍ଥ"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1467
+msgid "Select a file"
+msgstr "ଏକ ଫାଇଲ ମନୋନୀତ କର"
+
+#: ../libempathy-gtk/empathy-ui-utils.c:1525
+msgid "Select a destination"
+msgstr ""
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:158
+msgid "Current Locale"
+msgstr "ପ୍ରଚଳିତ ଲୋକେଲ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:161
+#: ../libempathy-gtk/totem-subtitle-encoding.c:163
+#: ../libempathy-gtk/totem-subtitle-encoding.c:165
+#: ../libempathy-gtk/totem-subtitle-encoding.c:167
+msgid "Arabic"
+msgstr "ଆରବୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:170
+msgid "Armenian"
+msgstr "ଆର୍ମେନିୟାନ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:173
+#: ../libempathy-gtk/totem-subtitle-encoding.c:175
+#: ../libempathy-gtk/totem-subtitle-encoding.c:177
+msgid "Baltic"
+msgstr "ବାଲଟିକ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:180
+msgid "Celtic"
+msgstr "କେଳ୍ଟିକ୍"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:183
+#: ../libempathy-gtk/totem-subtitle-encoding.c:185
+#: ../libempathy-gtk/totem-subtitle-encoding.c:187
+#: ../libempathy-gtk/totem-subtitle-encoding.c:189
+msgid "Central European"
+msgstr "କେନ୍ଦ୍ର ୟୁରୋପୀୟ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:192
+#: ../libempathy-gtk/totem-subtitle-encoding.c:194
+#: ../libempathy-gtk/totem-subtitle-encoding.c:196
+#: ../libempathy-gtk/totem-subtitle-encoding.c:198
+msgid "Chinese Simplified"
+msgstr "ଚୀନୀୟ ସରଳ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:201
+#: ../libempathy-gtk/totem-subtitle-encoding.c:203
+#: ../libempathy-gtk/totem-subtitle-encoding.c:205
+msgid "Chinese Traditional"
+msgstr "ଚୀନୀୟ ପାରମ୍ପରିକ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:208
+msgid "Croatian"
+msgstr "କ୍ରୋଏସିଆନ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:211
+#: ../libempathy-gtk/totem-subtitle-encoding.c:213
+#: ../libempathy-gtk/totem-subtitle-encoding.c:215
+#: ../libempathy-gtk/totem-subtitle-encoding.c:217
+#: ../libempathy-gtk/totem-subtitle-encoding.c:219
+#: ../libempathy-gtk/totem-subtitle-encoding.c:221
+msgid "Cyrillic"
+msgstr "ସିରୀଲିକ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:224
+msgid "Cyrillic/Russian"
+msgstr "ସିରିଲିକ/ରୁଷୀୟ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:227
+#: ../libempathy-gtk/totem-subtitle-encoding.c:229
+msgid "Cyrillic/Ukrainian"
+msgstr "ସିରିଲିକ/ଇଉକ୍ରେନୀୟ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:232
+msgid "Georgian"
+msgstr "ଜ୍ଯୋର୍ଜିୟାନ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:235
+#: ../libempathy-gtk/totem-subtitle-encoding.c:237
+#: ../libempathy-gtk/totem-subtitle-encoding.c:239
+msgid "Greek"
+msgstr "ଗ୍ରୀକ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:242
+msgid "Gujarati"
+msgstr "ଗୁଜୁରାଟୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:245
+msgid "Gurmukhi"
+msgstr "ଗୁରୂମୂଖୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:248
+#: ../libempathy-gtk/totem-subtitle-encoding.c:250
+#: ../libempathy-gtk/totem-subtitle-encoding.c:252
+#: ../libempathy-gtk/totem-subtitle-encoding.c:254
+msgid "Hebrew"
+msgstr "ହିବ୍ରୁ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:257
+msgid "Hebrew Visual"
+msgstr "ହିବ୍ରୁ ଚାକ୍ଷୁଷ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:260
+msgid "Hindi"
+msgstr "ହିନ୍ଦୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:263
+msgid "Icelandic"
+msgstr "ଆଇସଲ୍ଯାଣ୍ଡିକ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:266
+#: ../libempathy-gtk/totem-subtitle-encoding.c:268
+#: ../libempathy-gtk/totem-subtitle-encoding.c:270
+msgid "Japanese"
+msgstr "ଜାପାନୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:273
+#: ../libempathy-gtk/totem-subtitle-encoding.c:275
+#: ../libempathy-gtk/totem-subtitle-encoding.c:277
+#: ../libempathy-gtk/totem-subtitle-encoding.c:279
+msgid "Korean"
+msgstr "କୋରିଆନ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:282
+msgid "Nordic"
+msgstr "ନର୍ଡିକ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:285
+msgid "Persian"
+msgstr "ପାର୍ସୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:288
+#: ../libempathy-gtk/totem-subtitle-encoding.c:290
+msgid "Romanian"
+msgstr "ରୋମାନୀୟାନ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:293
+msgid "South European"
+msgstr "ଦକ୍ଷିଣ ୟୁରୋପୀୟ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:296
+msgid "Thai"
+msgstr "ଥାଈ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:299
+#: ../libempathy-gtk/totem-subtitle-encoding.c:301
+#: ../libempathy-gtk/totem-subtitle-encoding.c:303
+#: ../libempathy-gtk/totem-subtitle-encoding.c:305
+msgid "Turkish"
+msgstr "ତୁର୍କୀ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:308
+#: ../libempathy-gtk/totem-subtitle-encoding.c:310
+#: ../libempathy-gtk/totem-subtitle-encoding.c:312
+#: ../libempathy-gtk/totem-subtitle-encoding.c:314
+#: ../libempathy-gtk/totem-subtitle-encoding.c:316
+msgid "Unicode"
+msgstr "ୟୁନିକୋଡ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:319
+#: ../libempathy-gtk/totem-subtitle-encoding.c:321
+#: ../libempathy-gtk/totem-subtitle-encoding.c:323
+#: ../libempathy-gtk/totem-subtitle-encoding.c:325
+#: ../libempathy-gtk/totem-subtitle-encoding.c:327
+msgid "Western"
+msgstr "ପାଶ୍ଚାତ୍ଯ"
+
+#: ../libempathy-gtk/totem-subtitle-encoding.c:330
+#: ../libempathy-gtk/totem-subtitle-encoding.c:332
+#: ../libempathy-gtk/totem-subtitle-encoding.c:334
+msgid "Vietnamese"
+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."
+msgstr "ଆପଲେଟରେ ଦର୍ଶାଇବାକୁ ଥିବା ସମ୍ପର୍କ। ଖାଲି ମାନେ କୌଣସି ସମ୍ପର୍କ ଦର୍ଶାଯାଇନାହିଁ।"
+
+#: ../megaphone/data/GNOME_Megaphone_Applet.schemas.in.h:2
+msgid "The contact's avatar token. Empty means contact has no avatar."
+msgstr "ସମ୍ପର୍କର ଅଭତାର ଟକେନ। ଖାଲି ମାନେ ସମ୍ପର୍କରେ କୌଣସି ଅଭତାର ନାହିଁ।"
+
+#: ../megaphone/data/GNOME_Megaphone_Applet.server.in.in.h:1
+msgid "Megaphone"
+msgstr "Megaphone"
+
+#: ../megaphone/data/GNOME_Megaphone_Applet.server.in.in.h:2
+#: ../megaphone/src/megaphone-applet.c:519
+msgid "Talk!"
+msgstr "କୁହନ୍ତୁ!"
+
+#: ../megaphone/data/GNOME_Megaphone_Applet.xml.h:1
+#: ../nothere/data/GNOME_NotHere_Applet.xml.h:1
+msgid "_About"
+msgstr "ବିବରଣୀ (_A)"
+
+#: ../megaphone/data/GNOME_Megaphone_Applet.xml.h:2
+msgid "_Information"
+msgstr "ସୂଚନା (_I)"
+
+#: ../megaphone/data/GNOME_Megaphone_Applet.xml.h:3
+#: ../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 "ଉପସ୍ଥିତି"
+
+#: ../nothere/data/GNOME_NotHere_Applet.server.in.in.h:2
+#: ../nothere/src/nothere-applet.c:106
+msgid "Set your own presence"
+msgstr "ଆପଣଙ୍କର ନିଜର ଉପସ୍ଥିତିକୁ ସେଟକରନ୍ତୁ"
+
+#: ../src/empathy.c:506
+msgid "Don't connect on startup"
+msgstr "ଆରମ୍ଭରେ ସଂଯୋଗ କରନ୍ତୁ ନାହିଁ"
+
+#: ../src/empathy.c:510
+msgid "Don't show the contact list on startup"
+msgstr "ଆରମ୍ଭରେ ସମ୍ପର୍କ ତାଲିକା ଦର୍ଶାନ୍ତୁ ନାହିଁ"
+
+#: ../src/empathy.c:514
+msgid "Show the accounts dialog"
+msgstr "ଖାତା ସଂଳାପ ଦର୍ଶାନ୍ତୁ"
+
+#: ../src/empathy.c:526
+msgid "- Empathy Instant Messenger"
+msgstr "- Empathy ତୀବ୍ର ସନ୍ଦେଶ ବାହକ"
+
+#: ../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 "
+"Foundation; either version 2 of the License, or (at your option) any later "
+"version."
+msgstr ""
+"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 "
+"Foundation; either version 2 of the License, or (at your option) any later "
+"version."
+
+#: ../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 "
+"FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more "
+"details."
+msgstr ""
+"Empathy 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 General Public License for more "
+"details."
+
+#: ../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 "
+"Street, Fifth Floor, Boston, MA 02110-130159 USA"
+msgstr ""
+"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 "
+"Street, Fifth Floor, Boston, MA 02110-130159 USA"
+
+#: ../src/empathy-about-dialog.c:119
+msgid "An Instant Messaging client for GNOME"
+msgstr "GNOME ପାଇଁ ଗୋଟିଏ ତୀବ୍ର ସନ୍ଦେଶ ବାହକ ଗ୍ରାହକ"
+
+#: ../src/empathy-about-dialog.c:125
+msgid "translator-credits"
+msgstr "ଶୁଭ୍ରାଂଶୁ ବେହେରା <arya_subhransu@yahoo.co.in>"
+
+#: ../src/empathy-accounts-dialog.c:392
+msgid "Enabled"
+msgstr "ସକ୍ରିୟ"
+
+#: ../src/empathy-accounts-dialog.c:402 ../src/empathy-accounts-dialog.ui.h:1
+msgid "Accounts"
+msgstr "ଆକାଉଣ୍ଟଗୁଡିକ"
+
+#. To translator: %s is the protocol name
+#: ../src/empathy-accounts-dialog.c:837
+#, c-format
+msgid "New %s account"
+msgstr "ନୁଆ %s ଖାତା"
+
+#: ../src/empathy-accounts-dialog.c:950
+#, c-format
+msgid ""
+"You are about to remove your %s account!\n"
+"Are you sure you want to proceed?"
+msgstr ""
+"ଆପଣ ଆପଣଙ୍କର %s ଖାତାକୁ କାଢ଼ିବାକୁ ଯାଉଛନ୍ତି!\n"
+"ଆପଣ ନିଶ୍ଚିତ କି ଆପଣ ଅଗ୍ରସର ହେବାକୁ ଚାହୁଁଛନ୍ତି?"
+
+#: ../src/empathy-accounts-dialog.c:956
+msgid ""
+"Any associated conversations and chat rooms will NOT be removed if you "
+"decide to proceed.\n"
+"\n"
+"Should you decide to add the account back at a later time, they will still "
+"be available."
+msgstr ""
+"ଯେକୌଣସି ସଂଶ୍ଳିଷ୍ଟ ବାର୍ତ୍ତାଳାପ ଏବଂ ଚାର୍ଟରୁମଗୁଡ଼ିକୁ କଢ଼ାଯାଇପାରିବ ନାହିଁ ଯଦି ଆପଣ ଅଗ୍ରସର ହେବାକୁ ସିଦ୍ଧାନ୍ତ କରନ୍ତି।\n"
+"\n"
+"ଆପଣ ସେହି ଖାତାକୁ ପରବର୍ତ୍ତି ସମୟରେ ଯୋଗ କରିବା ପାଇଁ ଉଚିତ ମନେ କଲେ, ସେମାନେ ସେପର୍ଯ୍ୟନ୍ତ "
+"ଉପଲବ୍ଧ ରହିବେ।"
+
+#: ../src/empathy-accounts-dialog.ui.h:2
+msgid "Add Account"
+msgstr "ଆକାଉଣ୍ଟ ୟୋଗ କର"
+
+#: ../src/empathy-accounts-dialog.ui.h:3
+msgid "Cr_eate"
+msgstr "ସୃଷ୍ଟି କରନ୍ତୁ (_r)"
+
+#: ../src/empathy-accounts-dialog.ui.h:4
+msgid "Gmail"
+msgstr ""
+
+#: ../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 "
+"you want to use."
+msgstr ""
+"ଗୋଟିଏ ନୂତନ ଖାତା ଯୋଗ କରିବା ପାଇଁ, ଆପଣଙ୍କୁ ପ୍ରଥମେ ବ୍ୟବହାର କରିବାକୁ ଚାହୁଁଥିବା ପ୍ରତ୍ୟେକ ପ୍ରୋଟୋକଲ "
+"ପାଇଁ ଗୋଟିଏ ପୃଷ୍ଠଭୂମି ସ୍ଥାପନ କରିବାକୁ ହେବ।"
+
+#: ../src/empathy-accounts-dialog.ui.h:9
+msgid "Type:"
+msgstr "ପ୍ରକାର:"
+
+#: ../src/empathy-accounts-dialog.ui.h:10
+msgid "_Add..."
+msgstr "ଯୋଗ କରନ୍ତୁ (_A)..."
+
+#: ../src/empathy-accounts-dialog.ui.h:11
+msgid "_Create a new account"
+msgstr ""
+
+#: ../src/empathy-accounts-dialog.ui.h:12
+msgid "_Reuse an existing account"
+msgstr ""
+
+#: ../src/empathy-call-window.c:420
+msgid "Contrast"
+msgstr "ସ୍ପଷ୍ଟତା"
+
+#: ../src/empathy-call-window.c:423
+msgid "Brightness"
+msgstr "ଉଜ୍ଜ୍ବଳତା"
+
+#: ../src/empathy-call-window.c:426
+msgid "Gamma"
+msgstr "ଗାମା"
+
+#: ../src/empathy-call-window.c:531
+msgid "Volume"
+msgstr "ଭଲ୍ଯୁମ"
+
+#: ../src/empathy-call-window.c:662
+msgid "Connecting..."
+msgstr "ସଂଯୋଗ କରୁଅଛି..."
+
+#: ../src/empathy-call-window.c:746
+msgid "_Sidebar"
+msgstr "ପାର୍ଶ୍ବ ପଟି (_S)"
+
+#: ../src/empathy-call-window.c:765
+msgid "Dialpad"
+msgstr "ଡାଏଲ ପ୍ଯାଡ"
+
+#: ../src/empathy-call-window.c:771
+msgid "Audio input"
+msgstr "ଧ୍ବନି ନିବେଶ"
+
+#: ../src/empathy-call-window.c:775
+msgid "Video input"
+msgstr "ଭିଡ଼ିଓ ନିବେଶ"
+
+#: ../src/empathy-call-window.c:836
+#, c-format
+msgid "Call with %s"
+msgstr ""
+
+#: ../src/empathy-call-window.c:905
+msgid "Call"
+msgstr "ଡାକରା"
+
+#. Translators: number of minutes:seconds the caller has been connected
+#: ../src/empathy-call-window.c:1336
+#, c-format
+msgid "Connected — %d:%02dm"
+msgstr ""
+
+#: ../src/empathy-call-window.ui.h:1
+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:4
+msgid "Send video"
+msgstr "ଭିଡ଼ିଓ ପଠାନ୍ତୁ"
+
+#: ../src/empathy-call-window.ui.h:5
+msgid "Video preview"
+msgstr "ଭିଡିଓ ପୂର୍ବଦୃଶ୍ଯ"
+
+#: ../src/empathy-call-window.ui.h:6
+msgid "_Call"
+msgstr "_କଲ"
+
+#: ../src/empathy-call-window.ui.h:7 ../src/empathy-main-window.ui.h:21
+msgid "_View"
+msgstr "ଦ୍ରୁଶ୍ଯ (_V)"
+
+#: ../src/empathy-chat-window.c:344
+#, c-format
+msgid "Conversations (%d)"
+msgstr "କଥୋପକଥନ (%d)"
+
+#: ../src/empathy-chat-window.c:476
+msgid "Typing a message."
+msgstr "ଏକ ସନ୍ଦେଶ ଟାଇପ କରୁଅଛି."
+
+#: ../src/empathy-chatrooms-window.c:258
+msgid "Name"
+msgstr "ନାମ"
+
+#: ../src/empathy-chatrooms-window.c:276
+msgid "Room"
+msgstr "କକ୍ଷ"
+
+#: ../src/empathy-chatrooms-window.c:285
+msgid "Auto-Connect"
+msgstr "ସ୍ବୟଂ-ସଂଯୋଗ"
+
+#: ../src/empathy-chatrooms-window.ui.h:2
+msgid "Manage Favorite Rooms"
+msgstr "ମନପସନ୍ଦ କଠୋରିଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ"
+
+#: ../src/empathy-event-manager.c:321
+msgid "Incoming call"
+msgstr "ଆଗତ କଲ"
+
+#: ../src/empathy-event-manager.c:324
+#, c-format
+msgid "%s is calling you, do you want to answer?"
+msgstr "%s ଆପଣଙ୍କୁ ଡାକୁଅଛି, ଆପଣ ଉତ୍ତର ଦେବାକୁ ଚାହୁଁଛନ୍ତି କି?"
+
+#: ../src/empathy-event-manager.c:331
+msgid "_Reject"
+msgstr "ଅସ୍ୱୀକାର କରନ୍ତୁ (_R)"
+
+#: ../src/empathy-event-manager.c:337
+msgid "_Answer"
+msgstr "ଉତ୍ତର ଦିଅନ୍ତୁ (_A)"
+
+#: ../src/empathy-event-manager.c:452
+#, c-format
+msgid "Incoming call from %s"
+msgstr "%s ଠାରୁ ଆଗତ କଲ"
+
+#: ../src/empathy-event-manager.c:496
+#, c-format
+msgid "%s is offering you an invitation"
+msgstr "%s ଆପଣଙ୍କୁ ଆମନ୍ତ୍ରଣ କରୁଅଛି"
+
+#: ../src/empathy-event-manager.c:502
+msgid "An external application will be started to handle it."
+msgstr "ଏହାକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ଗୋଟିଏ ବାହ୍ୟ ପ୍ରୟୋଗକୁ ଆରମ୍ଭ କରାଯିବ।"
+
+#: ../src/empathy-event-manager.c:507
+msgid "You don't have the needed external application to handle it."
+msgstr "ଆପଣଙ୍କ ପାଖରେ ଏହାକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ଆବଶ୍ୟକୀୟ ବାହ୍ୟ ପ୍ରୟୋଗ ନାହିଁ।"
+
+#: ../src/empathy-event-manager.c:634
+msgid "Room invitation"
+msgstr "କଠୋରି ଆମନ୍ତ୍ରଣ"
+
+#: ../src/empathy-event-manager.c:637
+#, c-format
+msgid "%s is inviting you to join %s"
+msgstr "%s ଆପଣଙ୍କୁ %s ରେ ଯୋଗଦାନ କରିବା ପାଇଁ ଆମନ୍ତ୍ରଣ କରୁଛନ୍ତି"
+
+#: ../src/empathy-event-manager.c:645
+msgid "_Decline"
+msgstr "_ଅସ୍ବୀକାର"
+
+#: ../src/empathy-event-manager.c:650
+#: ../src/empathy-new-chatroom-dialog.ui.h:7
+msgid "_Join"
+msgstr "ଯୋଗଦାନ କରନ୍ତୁ (_J)"
+
+#: ../src/empathy-event-manager.c:689
+#, c-format
+msgid "%s invited you to join %s"
+msgstr "%s ଆପଣଙ୍କୁ %s ରେ ଯୋଗଦାନ କରିବା ପାଇଁ ଆମନ୍ତ୍ରଣ କରିଛନ୍ତି"
+
+#: ../src/empathy-event-manager.c:715
+#, c-format
+msgid "Incoming file transfer from %s"
+msgstr "%sରୁ ଆସୁଥିବା ଫାଇଲ ସ୍ଥାନାନ୍ତରଣ"
+
+#: ../src/empathy-event-manager.c:895
+#, c-format
+msgid "Subscription requested by %s"
+msgstr "%s ଦ୍ୱାରା ଅନୁରୋଧ କରାଯାଇଥିବା ସଦସ୍ୟତା"
+
+#: ../src/empathy-event-manager.c:899
+#, c-format
+msgid ""
+"\n"
+"Message: %s"
+msgstr ""
+"\n"
+"ସନ୍ଦେଶ: %s"
+
+#. someone is logging off
+#: ../src/empathy-event-manager.c:935
+#, c-format
+msgid "%s is now offline."
+msgstr ""
+
+#. someone is logging in
+#: ../src/empathy-event-manager.c:951
+#, c-format
+msgid "%s is now online."
+msgstr ""
+
+#. 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"
+
+#. 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-ft-manager.c:180
+msgctxt "file transfer percent"
+msgid "Unknown"
+msgstr "ଅଜଣା"
+
+#: ../src/empathy-ft-manager.c:275
+#, c-format
+msgid "%s of %s at %s/s"
+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: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:310
+#, c-format
+msgid "Sending \"%s\" to %s"
+msgstr "\"%s\" କୁ %s ପାଖକୁ ପଠାଯାଉଛି"
+
+#. 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 ""
+
+#: ../src/empathy-ft-manager.c:343
+msgid "Error receiving a file"
+msgstr ""
+
+#: ../src/empathy-ft-manager.c:348
+#, c-format
+msgid "Error sending \"%s\" to %s"
+msgstr ""
+
+#: ../src/empathy-ft-manager.c:351
+msgid "Error sending a file"
+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 ଠାରୁ"
+
+#. 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:498
+msgid "File transfer completed"
+msgstr "ଫାଇଲ ପରିବହନ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଅଛି "
+
+#: ../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:643 ../src/empathy-ft-manager.c:681
+#, c-format
+msgid "Checking integrity of \"%s\""
+msgstr ""
+
+#: ../src/empathy-ft-manager.c:646 ../src/empathy-ft-manager.c:684
+#, c-format
+msgid "Hashing \"%s\""
+msgstr ""
+
+#: ../src/empathy-ft-manager.c:1024
+msgid "%"
+msgstr "%"
+
+#: ../src/empathy-ft-manager.c:1036
+msgid "File"
+msgstr "ଫାଇଲ"
+
+#: ../src/empathy-ft-manager.c:1058
+msgid "Remaining"
+msgstr "ନାମ ପରିବର୍ତ୍ତନ କରୁଅଛି"
+
+#: ../src/empathy-ft-manager.ui.h:1
+msgid "File Transfers"
+msgstr "ଫାଇଲ ସ୍ଥାନାନ୍ତରଣ"
+
+#: ../src/empathy-ft-manager.ui.h:2
+msgid "Remove completed, canceled and failed file transfers from the list"
+msgstr "କାଢ଼ିବା ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି, ତାଲିକାରୁ ବାତିଲ ଏବଂ ବିଫଳ ଫାଇଲ ସ୍ଥାନାନ୍ତରଣ"
+
+#. Translators: this is the header of a treeview column
+#: ../src/empathy-import-dialog.c:263
+msgid "Import"
+msgstr "ଆୟତ କରନ୍ତୁ"
+
+#: ../src/empathy-import-dialog.c:272
+msgid "Protocol"
+msgstr "ପ୍ରୋଟୋକଲ"
+
+#: ../src/empathy-import-dialog.c:298
+msgid "Source"
+msgstr "ଉତ୍ସ"
+
+#: ../src/empathy-import-dialog.c:392
+msgid ""
+"No accounts to import could be found. Empathy currently only supports "
+"importing accounts from Pidgin."
+msgstr ""
+"ଆମଦାନୀ କରିବା ପାଇଁ କୌଣସି ଖାତା ମିଳୁନାହିଁ। Empathy ବର୍ତ୍ତମାନ କେବଳ ଖାତାଗୁଡ଼ିକୁ Pidginରୁ "
+"ଆମଦାନୀ କରିବାକୁ ସମର୍ଥନ କରିଥାଏ।"
+
+#: ../src/empathy-import-dialog.ui.h:1
+msgid "Import Accounts"
+msgstr "ଖାତାଗୁଡ଼ିକୁ ଆମଦାନି କରନ୍ତୁ"
+
+#: ../src/empathy-main-window.c:396
+msgid "_Edit account"
+msgstr "ଖାତା ସମ୍ପାଦନ କରନ୍ତୁ (_E)"
+
+#: ../src/empathy-main-window.c:499
+msgid "No error specified"
+msgstr "କିଛି ତ୍ରୁଟି ଦର୍ଶାଯାଇନାହିଁ"
+
+#: ../src/empathy-main-window.c:502
+msgid "Network error"
+msgstr "ନେଟୱାର୍କ ତ୍ରୁଟି"
+
+#: ../src/empathy-main-window.c:505
+msgid "Authentication failed"
+msgstr "ବୈଧିକରଣ ବିଫଳ"
+
+#: ../src/empathy-main-window.c:508
+msgid "Encryption error"
+msgstr "ସଂଗୁପ୍ତ ତ୍ରୁଟି"
+
+#: ../src/empathy-main-window.c:511
+msgid "Name in use"
+msgstr "ନାମ ଯାହାକି ବ୍ଯବହୃତ ହେଉଅଛି"
+
+#: ../src/empathy-main-window.c:514
+msgid "Certificate not provided"
+msgstr "ପ୍ରମାଣପତ୍ର ଦିଆଯାଇନାହିଁ"
+
+#: ../src/empathy-main-window.c:517
+msgid "Certificate untrusted"
+msgstr "ପ୍ରମାଣପତ୍ର ବିଶ୍ୱସ୍ଥ ନୁହଁ"
+
+#: ../src/empathy-main-window.c:520
+msgid "Certificate expired"
+msgstr "ପ୍ରମାଣପତ୍ରର ସମୟ ସମାପ୍ତ"
+
+#: ../src/empathy-main-window.c:523
+msgid "Certificate not activated"
+msgstr "ପ୍ରମାଣପତ୍ର ସକ୍ରିୟ କରାଯାଇନାହିଁ"
+
+#: ../src/empathy-main-window.c:526
+msgid "Certificate hostname mismatch"
+msgstr "ପ୍ରମାଣପତ୍ର ହୋଷ୍ଟ ନାମ ଅମେଳ"
+
+#: ../src/empathy-main-window.c:529
+msgid "Certificate fingerprint mismatch"
+msgstr "ପ୍ରମାଣପତ୍ର ଅଙ୍ଗୁଳିଚିହ୍ନ ମେଳଖାଉନାହିଁ"
+
+#: ../src/empathy-main-window.c:532
+msgid "Certificate self-signed"
+msgstr "ପ୍ରମାଣପତ୍ର ନିଜ ଦ୍ୱାରା ହସ୍ତାକ୍ଷର ହୋଇଛି"
+
+#: ../src/empathy-main-window.c:535
+msgid "Certificate error"
+msgstr "ପ୍ରମାଣପତ୍ର ତ୍ରୁଟି"
+
+#: ../src/empathy-main-window.c:538
+msgid "Unknown error"
+msgstr "ଅଜଣା ତ୍ରୁଟି"
+
+#: ../src/empathy-main-window.c:1218
+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.ui.h:2
+msgid "Contacts on a _Map"
+msgstr ""
+
+#: ../src/empathy-main-window.ui.h:3
+msgid "Context"
+msgstr "ପ୍ରସଙ୍ଗ"
+
+#: ../src/empathy-main-window.ui.h:4
+msgid "Join _Favorites"
+msgstr "ମନପସନ୍ଦଗୁଡ଼ିକରେ ଅଂଶଗ୍ରହଣ କରନ୍ତୁ (_F)"
+
+#: ../src/empathy-main-window.ui.h:5
+msgid "Manage Favorites"
+msgstr "ମନପସନ୍ଦଗୁଡ଼ିକୁ ପରିଚାଳନ କରନ୍ତୁ"
+
+#: ../src/empathy-main-window.ui.h:6
+msgid "_Accounts"
+msgstr "_ଆକାଉଣ୍ଟଗୁଡିକ"
+
+#: ../src/empathy-main-window.ui.h:7
+msgid "_Add Contact..."
+msgstr "ସମ୍ପର୍କ ଯୋଗ କରନ୍ତୁ (_A)..."
+
+#: ../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 ""
+
+#: ../src/empathy-main-window.ui.h:13
+msgid "_Help"
+msgstr "ସହାୟତା (_H)"
+
+#: ../src/empathy-main-window.ui.h:14
+msgid "_Join..."
+msgstr ""
+
+#: ../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
+msgid "_Offline Contacts"
+msgstr ""
+
+#: ../src/empathy-main-window.ui.h:17
+msgid "_Personal Information"
+msgstr "ବ୍ଯକ୍ତିଗତ ସୂଚନା (_P)"
+
+#: ../src/empathy-main-window.ui.h:19
+msgid "_Previous Conversations"
+msgstr ""
+
+#: ../src/empathy-main-window.ui.h:20
+msgid "_Room"
+msgstr "କକ୍ଷ (_R)"
+
+#: ../src/empathy-new-chatroom-dialog.c:331
+msgid "Chat Room"
+msgstr ""
+
+#: ../src/empathy-new-chatroom-dialog.c:347
+msgid "Members"
+msgstr "ସଦସ୍ଯ ମାନେ"
+
+#: ../src/empathy-new-chatroom-dialog.c:496
+#, 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:498
+#: ../src/empathy-new-chatroom-dialog.c:499
+msgid "Yes"
+msgstr "ହଁ"
+
+#: ../src/empathy-new-chatroom-dialog.c:498
+#: ../src/empathy-new-chatroom-dialog.c:499
+msgid "No"
+msgstr "ନାଁ"
+
+#: ../src/empathy-new-chatroom-dialog.c:526
+msgid "Could not start room listing"
+msgstr ""
+
+#: ../src/empathy-new-chatroom-dialog.c:536
+msgid "Could not stop room listing"
+msgstr ""
+
+#: ../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.ui.h:5
+msgid "Join Room"
+msgstr ""
+
+#: ../src/empathy-new-chatroom-dialog.ui.h:6
+msgid "Room List"
+msgstr "କକ୍ଷତାଲିକା"
+
+#: ../src/empathy-new-chatroom-dialog.ui.h:8
+msgid "_Room:"
+msgstr "କଠୋରି (_R):"
+
+#: ../src/empathy-preferences.c:161
+msgid "Message received"
+msgstr "ସନ୍ଦେଶ ପ୍ରାପ୍ତ"
+
+#: ../src/empathy-preferences.c:162
+msgid "Message sent"
+msgstr "ସନ୍ଦେଶ ପଠାଯାଇଅଛି"
+
+#: ../src/empathy-preferences.c:163
+msgid "New conversation"
+msgstr "ନୁଆ କଥୋପକଥନ"
+
+#: ../src/empathy-preferences.c:164
+msgid "Contact goes online"
+msgstr "ସମ୍ପର୍କ ଅନଲାଇନ ଆସିଲେ"
+
+#: ../src/empathy-preferences.c:165
+msgid "Contact goes offline"
+msgstr "ସମ୍ପର୍କ ଅଫଲାଇନ ଗଲେ"
+
+#: ../src/empathy-preferences.c:166
+msgid "Account connected"
+msgstr "ଖାତା ସଂଯୋଗିତ"
+
+#: ../src/empathy-preferences.c:167
+msgid "Account disconnected"
+msgstr "ଖାତା ବିଚ୍ଛିନ୍ନ"
+
+#: ../src/empathy-preferences.c:446
+msgid "Language"
+msgstr "ଭାଷା"
+
+#: ../src/empathy-preferences.ui.h:1
+msgid "Adium theme to use:"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:2
+msgid "Allow _GPS usage"
+msgstr ""
+
+#: ../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
+msgid "Appearance"
+msgstr "ସାଦ୍ରୁଶ୍ଯ"
+
+#: ../src/empathy-preferences.ui.h:6
+msgid "Automatically _connect on startup "
+msgstr "ଆରମ୍ଭରେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ସଂଯୋଗ କରନ୍ତୁ (_c)"
+
+#: ../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:11
+msgid "Disable notifications when _away or busy"
+msgstr "ଦୂରରେ ଥିବା ସମୟରେ କିମ୍ବା ବ୍ୟସ୍ତ ଥିବା ସମୟରେ ବିଜ୍ଞପ୍ତିକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ (_a)"
+
+#: ../src/empathy-preferences.ui.h:12
+msgid "Disable sounds when _away or busy"
+msgstr "ଦୂରରେ ଥିବା ସମୟରେ କିମ୍ବା ବ୍ୟସ୍ତ ଥିବା ସମୟରେ ଧ୍ୱନିକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ (_a)"
+
+#: ../src/empathy-preferences.ui.h:13
+msgid "Enable notifications when a contact comes online"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:14
+msgid "Enable notifications when a contact goes offline"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:15
+msgid "Enable notifications when the _chat is not focused"
+msgstr "ଚାର୍ଟକୁ ଲକ୍ଷ୍ୟ କରାଯାଉନଥିବା ସମୟରେ ବିଜ୍ଞପ୍ତିକୁ ସକ୍ରିୟ କରନ୍ତୁ (_c)"
+
+#: ../src/empathy-preferences.ui.h:16
+msgid "Enable spell checking for languages:"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:17
+msgid "General"
+msgstr "ସାଧାରଣ"
+
+#: ../src/empathy-preferences.ui.h:18
+msgid "Geoclue Settings"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:19
+msgid "Location"
+msgstr "ଅବସ୍ଥାନ"
+
+#: ../src/empathy-preferences.ui.h:20
+msgid "Not a valid adium theme"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:21
+msgid "Notifications"
+msgstr "ବିଜ୍ଞପ୍ତି"
+
+#: ../src/empathy-preferences.ui.h:22
+msgid "Play sound for events"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:23
+msgid "Preferences"
+msgstr "ପସନ୍ଦ"
+
+#: ../src/empathy-preferences.ui.h:24
+msgid "Privacy"
+msgstr "ଗୋପନୀଯତା"
+
+#: ../src/empathy-preferences.ui.h:25
+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:26
+msgid "Show _avatars"
+msgstr "ଅବତାର ଦେଖାନ୍ତୁ (_a)"
+
+#: ../src/empathy-preferences.ui.h:27
+msgid "Show _smileys as images"
+msgstr "ସ୍ମାଇଲିକୁ ପ୍ରତିଛବି ଆକାରରେ ଦର୍ଶାନ୍ତୁ (_s)"
+
+#: ../src/empathy-preferences.ui.h:28
+msgid "Show co_mpact contact list"
+msgstr "ସଂଗୁପ୍ତ ସମ୍ପର୍କ ତାଲିକା ଦର୍ଶାନ୍ତୁ (_m)"
+
+#: ../src/empathy-preferences.ui.h:29
+msgid "Show contact _list in rooms"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:30
+msgid "Sort by _name"
+msgstr "ନାମ ହିସାବରେ ସଜାଡ଼ନ୍ତୁ (_n)"
+
+#: ../src/empathy-preferences.ui.h:31
+msgid "Sort by s_tate"
+msgstr "ଅବସ୍ଥା ହିସାବରେ ସଜାଡ଼ନ୍ତୁ (_t)"
+
+#: ../src/empathy-preferences.ui.h:32
+msgid "Sounds"
+msgstr "ଶବ୍ଦ"
+
+#: ../src/empathy-preferences.ui.h:33
+msgid "Spell Checking"
+msgstr "ବନାନ ଯାଞ୍ଚ କରାଯାଉଛି"
+
+#: ../src/empathy-preferences.ui.h:34
+msgid ""
+"The list of languages reflects only the languages for which you have a "
+"dictionary installed."
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:35
+msgid "Themes"
+msgstr "ପ୍ରସଙ୍ଗ"
+
+#: ../src/empathy-preferences.ui.h:36
+msgid "_Enable bubble notifications"
+msgstr "ବବଲ ବିଜ୍ଞପ୍ତିକୁ ସକ୍ରିୟ କରନ୍ତୁ (_E)"
+
+#: ../src/empathy-preferences.ui.h:37
+msgid "_Enable sound notifications"
+msgstr "ଧ୍ୱିନି ବିଜ୍ଞପ୍ତିକୁ ସକ୍ରିୟ କରନ୍ତୁ (_E)"
+
+#: ../src/empathy-preferences.ui.h:38
+msgid "_Open new chats in separate windows"
+msgstr "ନୁଆ ଚାଟଗୁଡ଼ିକ ଅଲଗା ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ (_O)"
+
+#: ../src/empathy-preferences.ui.h:39
+msgid "_Publish location to my contacts"
+msgstr ""
+
+#: ../src/empathy-preferences.ui.h:40
+msgid "_Reduce location accuracy"
+msgstr ""
+
+#: ../src/empathy-status-icon.ui.h:1
+msgid "Status"
+msgstr "ଅବସ୍ଥିତି"
+
+#: ../src/empathy-status-icon.ui.h:3
+msgid "_Quit"
+msgstr "ବିଦାୟ ନିଅନ୍ତୁ (_Q)"
+
+#: ../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 ""
+"ସର୍ଭିସ %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:1083
+msgid "Error"
+msgstr "ତ୍ରୁଟି"
+
+#: ../src/empathy-debug-dialog.c:114 ../src/empathy-debug-dialog.c:1077
+msgid "Critical"
+msgstr "ଗୁରୁତର"
+
+#: ../src/empathy-debug-dialog.c:117 ../src/empathy-debug-dialog.c:1071
+msgid "Warning"
+msgstr "ଚେତାବନୀ"
+
+#: ../src/empathy-debug-dialog.c:120 ../src/empathy-debug-dialog.c:1065
+#: ../src/empathy-debug-dialog.c:1113
+msgid "Message"
+msgstr "ସନ୍ଦେଶ"
+
+#: ../src/empathy-debug-dialog.c:123 ../src/empathy-debug-dialog.c:1059
+msgid "Info"
+msgstr "ସୂଚନା"
+
+#: ../src/empathy-debug-dialog.c:126 ../src/empathy-debug-dialog.c:1053
+msgid "Debug"
+msgstr "ତୃଟିମୁକ୍ତ କରନ୍ତୁ"
+
+#: ../src/empathy-debug-dialog.c:845
+msgid "Save"
+msgstr "ସଂରକ୍ଷଣ କରନ୍ତୁ"
+
+#: ../src/empathy-debug-dialog.c:948
+msgid "Debug Window"
+msgstr "ଡିବଗ ଉଇଣ୍ଡୋ"
+
+#: ../src/empathy-debug-dialog.c:1021
+msgid "Pause"
+msgstr "ବିରତି"
+
+#: ../src/empathy-debug-dialog.c:1033
+msgid "Level "
+msgstr "ସ୍ତର"
+
+#: ../src/empathy-debug-dialog.c:1102
+msgid "Time"
+msgstr "ସମଯ"
+
+#: ../src/empathy-debug-dialog.c:1104
+msgid "Domain"
+msgstr "ପରିସର"
+
+#: ../src/empathy-debug-dialog.c:1106
+msgid "Category"
+msgstr "ବିଭାଗ"
+
+#: ../src/empathy-debug-dialog.c:1108
+msgid "Level"
+msgstr "ସ୍ତର"
+
+#: ../src/empathy-debug-dialog.c:1140
+msgid ""
+"The selected connection manager does not support the remote debugging "
+"extension."
+msgstr ""
+
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 ed19c7a96e00cb35d95a3f8b8b75b8a961c288d6..6b6f7dfd32fe9dc08ce73ee267029c3ca61e19f5 100644 (file)
     '("tp-error" "EMPATHY_FT_ERROR_TP_ERROR")
     '("socket" "EMPATHY_FT_ERROR_SOCKET")
     '("not-supported" "EMPATHY_FT_ERROR_NOT_SUPPORTED")
+    '("invalid-source-file" "EMPATHY_FT_ERROR_INVALID_SOURCE_FILE")
+    '("empty-source-file" "EMPATHY_FT_ERROR_EMPTY_SOURCE_FILE")
   )
 )
 
   (return-type "EmpathyAccountManager*")
 )
 
+(define-method create
+  (of-object "EmpathyAccountManager")
+  (c-name "empathy_account_manager_create")
+  (return-type "EmpathyAccount*")
+  (parameters
+    '("McProfile*" "profile")
+  )
+)
+
 (define-method get_connected_accounts
   (of-object "EmpathyAccountManager")
   (c-name "empathy_account_manager_get_connected_accounts")
   (return-type "int")
 )
 
-(define-method is_account_just_connected
-  (of-object "EmpathyAccountManager")
-  (c-name "empathy_account_manager_is_account_just_connected")
-  (return-type "gboolean")
-  (parameters
-    '("McAccount*" "account")
-  )
-)
-
 (define-method get_count
   (of-object "EmpathyAccountManager")
   (c-name "empathy_account_manager_get_count")
 (define-method get_account
   (of-object "EmpathyAccountManager")
   (c-name "empathy_account_manager_get_account")
-  (return-type "McAccount*")
+  (return-type "EmpathyAccount*")
   (parameters
     '("TpConnection*" "connection")
   )
 )
 
-(define-method dup_accounts
+(define-method lookup
   (of-object "EmpathyAccountManager")
-  (c-name "empathy_account_manager_dup_accounts")
-  (return-type "GList*")
+  (c-name "empathy_account_manager_lookup")
+  (return-type "EmpathyAccount*")
+  (parameters
+    '("const-gchar*" "unique_name")
+  )
 )
 
-(define-method get_connection
+(define-method dup_accounts
   (of-object "EmpathyAccountManager")
-  (c-name "empathy_account_manager_get_connection")
-  (return-type "TpConnection*")
-  (parameters
-    '("McAccount*" "account")
-  )
+  (c-name "empathy_account_manager_dup_accounts")
+  (return-type "GList*")
 )
 
 (define-method dup_connections
   (return-type "GList*")
 )
 
+(define-method remove
+  (of-object "EmpathyAccountManager")
+  (c-name "empathy_account_manager_remove")
+  (return-type "none")
+  (parameters
+    '("EmpathyAccount*" "account")
+  )
+)
+
 
 
 ;; From empathy-chatroom.h
   (is-constructor-of "EmpathyChatroom")
   (return-type "EmpathyChatroom*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   (c-name "empathy_chatroom_new_full")
   (return-type "EmpathyChatroom*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "room")
     '("const-gchar*" "name")
     '("gboolean" "auto_connect")
 (define-method get_account
   (of-object "EmpathyChatroom")
   (c-name "empathy_chatroom_get_account")
-  (return-type "McAccount*")
+  (return-type "EmpathyAccount*")
 )
 
 (define-method set_account
   (c-name "empathy_chatroom_set_account")
   (return-type "none")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   (c-name "empathy_chatroom_manager_find")
   (return-type "EmpathyChatroom*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "room")
   )
 )
   (c-name "empathy_chatroom_manager_get_chatrooms")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   (c-name "empathy_chatroom_manager_get_count")
   (return-type "guint")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   (return-type "none")
 )
 
+(define-method stop_call
+  (of-object "EmpathyCallHandler")
+  (c-name "empathy_call_handler_stop_call")
+  (return-type "none")
+)
+
+(define-method has_initial_video
+  (of-object "EmpathyCallHandler")
+  (c-name "empathy_call_handler_has_initial_video")
+  (return-type "gboolean")
+)
+
 (define-method bus_message
   (of-object "EmpathyCallHandler")
   (c-name "empathy_call_handler_bus_message")
   (c-name "empathy_contact_new_for_log")
   (return-type "EmpathyContact*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "id")
     '("const-gchar*" "name")
     '("gboolean" "is_user")
 (define-method get_account
   (of-object "EmpathyContact")
   (c-name "empathy_contact_get_account")
-  (return-type "McAccount*")
+  (return-type "EmpathyAccount*")
 )
 
 (define-method get_connection
   )
 )
 
+(define-function contact_equal
+  (c-name "empathy_contact_equal")
+  (return-type "gboolean")
+  (parameters
+    '("gconstpointer" "contact1")
+    '("gconstpointer" "contact2")
+  )
+)
+
 
 
 ;; From empathy-contact-groups.h
   (varargs #t)
 )
 
+(define-function debug_free
+  (c-name "empathy_debug_free")
+  (return-type "none")
+)
+
 (define-function debug_set_flags
   (c-name "empathy_debug_set_flags")
   (return-type "none")
   (c-name "empathy_log_manager_exists")
   (return-type "gboolean")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
   )
   (c-name "empathy_log_manager_get_dates")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
   )
   (c-name "empathy_log_manager_get_messages_for_date")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
     '("const-gchar*" "date")
   (c-name "empathy_log_manager_get_filtered_messages")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
     '("guint" "num_messages")
   (c-name "empathy_log_manager_get_chats")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   (c-name "empathy_log_store_exists")
   (return-type "gboolean")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
   )
   (c-name "empathy_log_store_get_dates")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
   )
   (c-name "empathy_log_store_get_messages_for_date")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
     '("const-gchar*" "date")
   (c-name "empathy_log_store_get_last_messages")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
   )
   (c-name "empathy_log_store_get_chats")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   (c-name "empathy_log_store_get_filtered_messages")
   (return-type "GList*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
     '("guint" "num_messages")
   (return-type "none")
 )
 
+(define-function status_presets_is_valid
+  (c-name "empathy_status_presets_is_valid")
+  (return-type "gboolean")
+  (parameters
+    '("TpConnectionPresenceType" "state")
+  )
+)
+
 
 
 ;; From empathy-time.h
   (return-type "gboolean")
 )
 
+(define-method is_receiving_video
+  (of-object "EmpathyTpCall")
+  (c-name "empathy_tp_call_is_receiving_video")
+  (return-type "gboolean")
+)
+
+(define-method is_sending_video
+  (of-object "EmpathyTpCall")
+  (c-name "empathy_tp_call_is_sending_video")
+  (return-type "gboolean")
+)
+
 
 
 ;; From empathy-tp-chat.h
   (is-constructor-of "EmpathyTpRoomlist")
   (return-type "EmpathyTpRoomlist*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
index cf85c785345b4326e6c2aaf4aaab1535e8006c7e..377eea43ad84c4c23bd97866b2e5f692225c3b52 100644 (file)
 (define-method dup_account
   (of-object "EmpathyAccountChooser")
   (c-name "empathy_account_chooser_dup_account")
-  (return-type "McAccount*")
+  (return-type "EmpathyAccount*")
 )
 
 (define-method get_connection
   (c-name "empathy_account_chooser_set_account")
   (return-type "gboolean")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
   )
 )
 
-(define-function account_chooser_filter_is_connected
+(define-method chooser_filter_is_connected
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_chooser_filter_is_connected")
   (return-type "gboolean")
   (parameters
-    '("McAccount*" "account")
     '("gpointer" "user_data")
   )
 )
 
 ;; From empathy-account-widget.h
 
-(define-function account_widget_handle_params
+(define-method widget_handle_params
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_handle_params")
   (return-type "none")
   (parameters
-    '("McAccount*" "account")
     '("GtkBuilder*" "gui")
     '("const-gchar*" "first_widget")
   )
   (varargs #t)
 )
 
-(define-function account_widget_add_forget_button
+(define-method widget_add_forget_button
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_add_forget_button")
   (return-type "none")
   (parameters
-    '("McAccount*" "account")
     '("GtkBuilder*" "gui")
     '("const-gchar*" "button")
     '("const-gchar*" "entry")
   )
 )
 
-(define-function account_widget_generic_new
+(define-method widget_generic_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_generic_new")
-  (is-constructor-of "EmpathyAccountWidgetGeneric")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_salut_new
+(define-method widget_salut_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_salut_new")
-  (is-constructor-of "EmpathyAccountWidgetSalut")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_msn_new
+(define-method widget_msn_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_msn_new")
-  (is-constructor-of "EmpathyAccountWidgetMsn")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_jabber_new
+(define-method widget_jabber_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_jabber_new")
-  (is-constructor-of "EmpathyAccountWidgetJabber")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_icq_new
+(define-method widget_icq_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_icq_new")
-  (is-constructor-of "EmpathyAccountWidgetIcq")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_aim_new
+(define-method widget_aim_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_aim_new")
-  (is-constructor-of "EmpathyAccountWidgetAim")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_yahoo_new
+(define-method widget_yahoo_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_yahoo_new")
-  (is-constructor-of "EmpathyAccountWidgetYahoo")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
-(define-function account_widget_groupwise_new
+(define-method widget_groupwise_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_groupwise_new")
-  (is-constructor-of "EmpathyAccountWidgetGroupwise")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
 
 
 ;; From empathy-account-widget-irc.h
 
-(define-function account_widget_irc_new
+(define-method widget_irc_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_irc_new")
-  (is-constructor-of "EmpathyAccountWidgetIrc")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
 
 
 ;; From empathy-account-widget-sip.h
 
-(define-function account_widget_sip_new
+(define-method widget_sip_new
+  (of-object "EmpathyAccount")
   (c-name "empathy_account_widget_sip_new")
-  (is-constructor-of "EmpathyAccountWidgetSip")
   (return-type "GtkWidget*")
-  (parameters
-    '("McAccount*" "account")
-  )
 )
 
 
 (define-method get_account
   (of-object "EmpathyChat")
   (c-name "empathy_chat_get_account")
-  (return-type "McAccount*")
+  (return-type "EmpathyAccount*")
 )
 
 (define-method get_id
   (return-type "gboolean")
 )
 
+(define-method set_show_contacts
+  (of-object "EmpathyChat")
+  (c-name "empathy_chat_set_show_contacts")
+  (return-type "none")
+  (parameters
+    '("gboolean" "show")
+  )
+)
+
 
 
 ;; From empathy-chat-text-view.h
   (c-name "empathy_log_window_show")
   (return-type "GtkWidget*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
     '("const-gchar*" "chat_id")
     '("gboolean" "chatroom")
     '("GtkWindow*" "parent")
   (c-name "empathy_icon_name_from_account")
   (return-type "const-gchar*")
   (parameters
-    '("McAccount*" "account")
+    '("EmpathyAccount*" "account")
   )
 )
 
index dbcd6d43d79a5f4ace0d6e905b75c969f62983d6..42485b7d1fed7105ee9f131effd608787523db09 100644 (file)
@@ -3,6 +3,7 @@ include $(top_srcdir)/tools/flymake.mk
 
 AM_CPPFLAGS =                                          \
        -I$(top_srcdir)                                 \
+       -DG_LOG_DOMAIN=\"empathy\"                      \
        $(EMPATHY_CFLAGS)                               \
        $(LIBNOTIFY_CFLAGS)                             \
        $(LIBCHAMPLAIN_CFLAGS)                          \
@@ -82,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..98e848566c0443e094f9dc0090382d830ae8fb28 100644 (file)
@@ -31,7 +31,6 @@
 #include <glib/gi18n.h>
 #include <dbus/dbus-glib.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-profile.h>
 #include <telepathy-glib/util.h>
 
@@ -96,7 +95,7 @@ enum {
 };
 
 static void       accounts_dialog_update_account            (EmpathyAccountsDialog    *dialog,
-                                                            McAccount                *account);
+                                                            EmpathyAccount           *account);
 static void       accounts_dialog_model_setup               (EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_model_add_columns         (EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_name_editing_started_cb   (GtkCellRenderer          *renderer,
@@ -109,19 +108,19 @@ static void       accounts_dialog_model_pixbuf_data_func    (GtkTreeViewColumn
                                                             GtkTreeModel             *model,
                                                             GtkTreeIter              *iter,
                                                             EmpathyAccountsDialog    *dialog);
-static McAccount *accounts_dialog_model_get_selected        (EmpathyAccountsDialog    *dialog);
+static EmpathyAccount *accounts_dialog_model_get_selected        (EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_model_set_selected        (EmpathyAccountsDialog    *dialog,
-                                                            McAccount                *account);
+                                                            EmpathyAccount           *account);
 static gboolean   accounts_dialog_model_remove_selected     (EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_model_selection_changed   (GtkTreeSelection         *selection,
                                                             EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_add_or_update_account     (EmpathyAccountsDialog    *dialog,
-                                                            McAccount                *account);
+                                                            EmpathyAccount           *account);
 static void       accounts_dialog_account_added_cb          (EmpathyAccountManager    *manager,
-                                                            McAccount                *account,
+                                                            EmpathyAccount           *account,
                                                             EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_account_removed_cb        (EmpathyAccountManager    *manager,
-                                                            McAccount                *account,
+                                                            EmpathyAccount           *account,
                                                             EmpathyAccountsDialog    *dialog);
 static gboolean   accounts_dialog_row_changed_foreach       (GtkTreeModel             *model,
                                                             GtkTreePath              *path,
@@ -129,7 +128,7 @@ static gboolean   accounts_dialog_row_changed_foreach       (GtkTreeModel
                                                             gpointer                  user_data);
 static gboolean   accounts_dialog_flash_connecting_cb       (EmpathyAccountsDialog    *dialog);
 static void       accounts_dialog_connection_changed_cb     (EmpathyAccountManager    *manager,
-                                                            McAccount                *account,
+                                                            EmpathyAccount           *account,
                                                             TpConnectionStatusReason  reason,
                                                             TpConnectionStatus        current,
                                                             TpConnectionStatus        previous,
@@ -154,12 +153,12 @@ static void       accounts_dialog_destroy_cb                (GtkWidget
 
 static void
 accounts_dialog_update_name_label (EmpathyAccountsDialog *dialog,
-                                  McAccount             *account)
+                                  EmpathyAccount        *account)
 {
        gchar *text;
 
        text = g_markup_printf_escaped ("<big><b>%s</b></big>",
-                       mc_account_get_display_name (account));
+                       empathy_account_get_display_name (account));
        gtk_label_set_markup (GTK_LABEL (dialog->label_name), text);
 
        g_free (text);
@@ -167,7 +166,7 @@ accounts_dialog_update_name_label (EmpathyAccountsDialog *dialog,
 
 static void
 accounts_dialog_update_account (EmpathyAccountsDialog *dialog,
-                               McAccount            *account)
+                               EmpathyAccount       *account)
 {
        McProfile   *profile;
        const gchar *config_ui;
@@ -216,7 +215,7 @@ accounts_dialog_update_account (EmpathyAccountsDialog *dialog,
                dialog->settings_widget = NULL;
        }
 
-       profile = mc_account_get_profile (account);
+       profile = empathy_account_get_profile (account);
        config_ui = mc_profile_get_configuration_ui (profile);
        if (!tp_strdiff (config_ui, "jabber")) {
                dialog->settings_widget =
@@ -282,10 +281,10 @@ accounts_dialog_model_setup (EmpathyAccountsDialog *dialog)
        GtkTreeSelection *selection;
 
        store = gtk_list_store_new (COL_COUNT,
-                                   G_TYPE_BOOLEAN,    /* enabled */
-                                   G_TYPE_STRING,     /* name */
-                                   G_TYPE_UINT,       /* status */
-                                   MC_TYPE_ACCOUNT);  /* account */
+                                   G_TYPE_BOOLEAN,        /* enabled */
+                                   G_TYPE_STRING,         /* name */
+                                   G_TYPE_UINT,           /* status */
+                                   EMPATHY_TYPE_ACCOUNT); /* account */
 
        gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->treeview),
                                 GTK_TREE_MODEL (store));
@@ -311,7 +310,7 @@ accounts_dialog_name_edited_cb (GtkCellRendererText   *renderer,
                                gchar                 *new_text,
                                EmpathyAccountsDialog *dialog)
 {
-       McAccount    *account;
+       EmpathyAccount    *account;
        GtkTreeModel *model;
        GtkTreePath  *treepath;
        GtkTreeIter   iter;
@@ -333,7 +332,7 @@ accounts_dialog_name_edited_cb (GtkCellRendererText   *renderer,
                            -1);
        gtk_tree_path_free (treepath);
 
-       mc_account_set_display_name (account, new_text);
+       empathy_account_set_display_name (account, new_text);
        g_object_unref (account);
 }
 
@@ -342,7 +341,7 @@ accounts_dialog_enable_toggled_cb (GtkCellRendererToggle *cell_renderer,
                                   gchar                 *path,
                                   EmpathyAccountsDialog *dialog)
 {
-       McAccount    *account;
+       EmpathyAccount    *account;
        GtkTreeModel *model;
        GtkTreePath  *treepath;
        GtkTreeIter   iter;
@@ -356,11 +355,11 @@ accounts_dialog_enable_toggled_cb (GtkCellRendererToggle *cell_renderer,
                            -1);
        gtk_tree_path_free (treepath);
 
-       enabled = mc_account_is_enabled (account);
-       mc_account_set_enabled (account, !enabled);
+       enabled = empathy_account_is_enabled (account);
+       empathy_account_set_enabled (account, !enabled);
 
        DEBUG ("%s account %s", enabled ? "Disabled" : "Enable",
-               mc_account_get_display_name (account));
+               empathy_account_get_display_name (account));
 
        g_object_unref (account);
 }
@@ -397,7 +396,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"));
@@ -417,6 +416,7 @@ accounts_dialog_model_add_columns (EmpathyAccountsDialog *dialog)
        cell = gtk_cell_renderer_text_new ();
        g_object_set (cell,
                      "ellipsize", PANGO_ELLIPSIZE_END,
+                     "width-chars", 25,
                      "editable", TRUE,
                      NULL);
        gtk_tree_view_column_pack_start (column, cell, TRUE);
@@ -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);
@@ -456,7 +456,7 @@ accounts_dialog_model_pixbuf_data_func (GtkTreeViewColumn    *tree_column,
                                        GtkTreeIter          *iter,
                                        EmpathyAccountsDialog *dialog)
 {
-       McAccount          *account;
+       EmpathyAccount     *account;
        const gchar        *icon_name;
        GdkPixbuf          *pixbuf;
        TpConnectionStatus  status;
@@ -503,14 +503,14 @@ accounts_dialog_model_pixbuf_data_func (GtkTreeViewColumn    *tree_column,
 
 static gboolean
 accounts_dialog_get_account_iter (EmpathyAccountsDialog *dialog,
-                                McAccount             *account,
+                                EmpathyAccount        *account,
                                 GtkTreeIter           *iter)
 {
        GtkTreeView      *view;
        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);
@@ -519,7 +519,7 @@ accounts_dialog_get_account_iter (EmpathyAccountsDialog *dialog,
        for (ok = gtk_tree_model_get_iter_first (model, iter);
             ok;
             ok = gtk_tree_model_iter_next (model, iter)) {
-               McAccount *this_account;
+               EmpathyAccount *this_account;
                gboolean   equal;
 
                gtk_tree_model_get (model, iter,
@@ -537,14 +537,14 @@ accounts_dialog_get_account_iter (EmpathyAccountsDialog *dialog,
        return FALSE;
 }
 
-static McAccount *
+static EmpathyAccount *
 accounts_dialog_model_get_selected (EmpathyAccountsDialog *dialog)
 {
        GtkTreeView      *view;
        GtkTreeModel     *model;
        GtkTreeSelection *selection;
        GtkTreeIter       iter;
-       McAccount        *account;
+       EmpathyAccount   *account;
 
        view = GTK_TREE_VIEW (dialog->treeview);
        selection = gtk_tree_view_get_selection (view);
@@ -560,7 +560,7 @@ accounts_dialog_model_get_selected (EmpathyAccountsDialog *dialog)
 
 static void
 accounts_dialog_model_set_selected (EmpathyAccountsDialog *dialog,
-                                   McAccount             *account)
+                                   EmpathyAccount        *account)
 {
        GtkTreeSelection *selection;
        GtkTreeIter       iter;
@@ -593,7 +593,7 @@ static void
 accounts_dialog_model_selection_changed (GtkTreeSelection     *selection,
                                         EmpathyAccountsDialog *dialog)
 {
-       McAccount    *account;
+       EmpathyAccount    *account;
        GtkTreeModel *model;
        GtkTreeIter   iter;
        gboolean      is_selection;
@@ -610,7 +610,7 @@ accounts_dialog_model_selection_changed (GtkTreeSelection     *selection,
 
 static void
 accounts_dialog_add_or_update_account (EmpathyAccountsDialog *dialog,
-                                      McAccount             *account)
+                                      EmpathyAccount        *account)
 {
        GtkTreeModel       *model;
        GtkTreeIter         iter;
@@ -619,9 +619,9 @@ accounts_dialog_add_or_update_account (EmpathyAccountsDialog *dialog,
        gboolean            enabled;
 
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->treeview));
-       status = mission_control_get_connection_status (dialog->mc, account, NULL);
-       name = mc_account_get_display_name (account);
-       enabled = mc_account_is_enabled (account);
+       g_object_get (account, "status", &status, NULL);
+       name = empathy_account_get_display_name (account);
+       enabled = empathy_account_is_enabled (account);
 
        if (!accounts_dialog_get_account_iter (dialog, account, &iter)) {
                DEBUG ("Adding new account");
@@ -645,7 +645,7 @@ accounts_dialog_add_or_update_account (EmpathyAccountsDialog *dialog,
 
 static void
 accounts_dialog_account_added_cb (EmpathyAccountManager *manager,
-                                 McAccount *account,
+                                 EmpathyAccount *account,
                                  EmpathyAccountsDialog *dialog)
 {
        const gchar *current_name;
@@ -655,25 +655,25 @@ accounts_dialog_account_added_cb (EmpathyAccountManager *manager,
 
        /* Change the display name to "%s (%s)" % (protocol, account).
         *  - The protocol is the display name of the profile.
-        *  - The account should be the normalized name of the McAccount but
+        *  - The account should be the normalized name of the EmpathyAccount but
         *    it's not set until first connection, so we get the "account"
         *    parameter for CM that have it. */
-       current_name = mc_account_get_display_name (account);
-       mc_account_get_param_string (account, "account", &account_param);
+       current_name = empathy_account_get_display_name (account);
+       account_param = empathy_account_get_param_string (account, "account");
        if (!EMP_STR_EMPTY (account_param)) {
                McProfile   *profile;
                const gchar *profile_name;
                gchar       *new_name;
 
-               profile = mc_account_get_profile (account);
+               profile = empathy_account_get_profile (account);
                profile_name = mc_profile_get_display_name (profile);
                new_name = g_strdup_printf ("%s (%s)", profile_name,
                                            account_param);
 
                DEBUG ("Setting new display name for account %s: '%s'",
-                      mc_account_get_unique_name (account), new_name);
+                      empathy_account_get_unique_name (account), new_name);
 
-               mc_account_set_display_name (account, new_name);
+               empathy_account_set_display_name (account, new_name);
                g_free (new_name);
                g_object_unref (profile);
        } else {
@@ -684,7 +684,7 @@ accounts_dialog_account_added_cb (EmpathyAccountManager *manager,
 
 static void
 accounts_dialog_account_removed_cb (EmpathyAccountManager *manager,
-                                   McAccount            *account,
+                                   EmpathyAccount       *account,
                                    EmpathyAccountsDialog *dialog)
 {
 
@@ -721,7 +721,7 @@ accounts_dialog_flash_connecting_cb (EmpathyAccountsDialog *dialog)
 
 static void
 accounts_dialog_connection_changed_cb     (EmpathyAccountManager    *manager,
-                                          McAccount                *account,
+                                          EmpathyAccount           *account,
                                           TpConnectionStatusReason  reason,
                                           TpConnectionStatus        current,
                                           TpConnectionStatus        previous,
@@ -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));
 
@@ -762,7 +762,7 @@ accounts_dialog_connection_changed_cb     (EmpathyAccountManager    *manager,
 
 static void
 enable_or_disable_account (EmpathyAccountsDialog *dialog,
-                          McAccount *account,
+                          EmpathyAccount *account,
                           gboolean enabled)
 {
        GtkTreeModel *model;
@@ -772,7 +772,7 @@ enable_or_disable_account (EmpathyAccountsDialog *dialog,
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->treeview));
 
        DEBUG ("Account %s is now %s",
-               mc_account_get_display_name (account),
+               empathy_account_get_display_name (account),
                enabled ? "enabled" : "disabled");
 
        if (accounts_dialog_get_account_iter (dialog, account, &iter)) {
@@ -784,7 +784,7 @@ enable_or_disable_account (EmpathyAccountsDialog *dialog,
 
 static void
 accounts_dialog_account_disabled_cb (EmpathyAccountManager *manager,
-                                    McAccount             *account,
+                                    EmpathyAccount        *account,
                                     EmpathyAccountsDialog *dialog)
 {
        enable_or_disable_account (dialog, account, FALSE);
@@ -792,7 +792,7 @@ accounts_dialog_account_disabled_cb (EmpathyAccountManager *manager,
 
 static void
 accounts_dialog_account_enabled_cb (EmpathyAccountManager *manager,
-                                   McAccount             *account,
+                                   EmpathyAccount        *account,
                                    EmpathyAccountsDialog *dialog)
 {
        enable_or_disable_account (dialog, account, TRUE);
@@ -800,10 +800,10 @@ accounts_dialog_account_enabled_cb (EmpathyAccountManager *manager,
 
 static void
 accounts_dialog_account_changed_cb (EmpathyAccountManager *manager,
-                                   McAccount             *account,
+                                   EmpathyAccount        *account,
                                    EmpathyAccountsDialog  *dialog)
 {
-       McAccount *selected_account;
+       EmpathyAccount *selected_account;
 
        accounts_dialog_add_or_update_account (dialog, account);
        selected_account = accounts_dialog_model_get_selected (dialog);
@@ -817,7 +817,7 @@ accounts_dialog_button_create_clicked_cb (GtkWidget             *button,
                                          EmpathyAccountsDialog  *dialog)
 {
        McProfile *profile;
-       McAccount *account;
+       EmpathyAccount *account;
        gchar     *str;
        McProfileCapabilityFlags cap;
 
@@ -825,7 +825,7 @@ accounts_dialog_button_create_clicked_cb (GtkWidget             *button,
            EMPATHY_PROFILE_CHOOSER (dialog->combobox_profile));
 
        /* Create account */
-       account = mc_account_create (profile);
+       account = empathy_account_manager_create (dialog->account_manager, profile);
        if (account == NULL) {
                /* We can't display an error to the user as MC doesn't give us
                 * any clue about the reason of the failure... */
@@ -836,7 +836,7 @@ accounts_dialog_button_create_clicked_cb (GtkWidget             *button,
        /* To translator: %s is the protocol name */
        str = g_strdup_printf (_("New %s account"),
                               mc_profile_get_display_name (profile));
-       mc_account_set_display_name (account, str);
+       empathy_account_set_display_name (account, str);
        g_free (str);
 
        cap = mc_profile_get_capabilities (profile);
@@ -845,7 +845,7 @@ accounts_dialog_button_create_clicked_cb (GtkWidget             *button,
 
                active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->radiobutton_register));
                if (active) {
-                       mc_account_set_param_boolean (account, "register", TRUE);
+                       empathy_account_set_param_boolean (account, "register", TRUE);
                }
        }
 
@@ -860,7 +860,7 @@ static void
 accounts_dialog_button_back_clicked_cb (GtkWidget             *button,
                                        EmpathyAccountsDialog  *dialog)
 {
-       McAccount *account;
+       EmpathyAccount *account;
 
        account = accounts_dialog_model_get_selected (dialog);
        accounts_dialog_update_account (dialog, account);
@@ -931,13 +931,13 @@ static void
 accounts_dialog_button_remove_clicked_cb (GtkWidget            *button,
                                          EmpathyAccountsDialog *dialog)
 {
-       McAccount *account;
+       EmpathyAccount *account;
        GtkWidget *message_dialog;
        gint       res;
 
        account = accounts_dialog_model_get_selected (dialog);
 
-       if (!mc_account_is_complete (account)) {
+       if (!empathy_account_is_valid (account)) {
                accounts_dialog_model_remove_selected (dialog);
                accounts_dialog_model_select_first (dialog);
                return;
@@ -949,7 +949,7 @@ accounts_dialog_button_remove_clicked_cb (GtkWidget            *button,
                 GTK_BUTTONS_NONE,
                 _("You are about to remove your %s account!\n"
                   "Are you sure you want to proceed?"),
-                mc_account_get_display_name (account));
+                empathy_account_get_display_name (account));
 
        gtk_message_dialog_format_secondary_text
                (GTK_MESSAGE_DIALOG (message_dialog),
@@ -970,7 +970,7 @@ accounts_dialog_button_remove_clicked_cb (GtkWidget            *button,
        res = gtk_dialog_run (GTK_DIALOG (message_dialog));
 
        if (res == GTK_RESPONSE_YES) {
-               mc_account_delete (account);
+               empathy_account_manager_remove (dialog->account_manager, account);
                accounts_dialog_model_select_first (dialog);
        }
        gtk_widget_destroy (message_dialog);
@@ -1020,15 +1020,15 @@ accounts_dialog_destroy_cb (GtkWidget            *widget,
                                              dialog);
 
        /* Delete incomplete accounts */
-       accounts = mc_accounts_list ();
+       accounts = empathy_account_manager_dup_accounts (dialog->account_manager);
        for (l = accounts; l; l = l->next) {
-               McAccount *account;
+               EmpathyAccount *account;
 
                account = l->data;
-               if (!mc_account_is_complete (account)) {
+               if (!empathy_account_is_valid (account)) {
                        /* FIXME: Warn the user the account is not complete
                         *        and is going to be removed. */
-                       mc_account_delete (account);
+                       empathy_account_manager_remove (dialog->account_manager, account);
                }
 
                g_object_unref (account);
@@ -1041,13 +1041,13 @@ accounts_dialog_destroy_cb (GtkWidget            *widget,
 
        g_object_unref (dialog->account_manager);
        g_object_unref (dialog->mc);
-       
+
        g_free (dialog);
 }
 
 GtkWidget *
 empathy_accounts_dialog_show (GtkWindow *parent,
-                             McAccount *selected_account)
+                             EmpathyAccount *selected_account)
 {
        static EmpathyAccountsDialog *dialog = NULL;
        GtkBuilder                   *gui;
@@ -1135,7 +1135,7 @@ empathy_accounts_dialog_show (GtkWindow *parent,
        accounts_dialog_model_setup (dialog);
 
        /* Add existing accounts */
-       accounts = mc_accounts_list ();
+       accounts = empathy_account_manager_dup_accounts (dialog->account_manager);
        for (l = accounts; l; l = l->next) {
                accounts_dialog_add_or_update_account (dialog, l->data);
                g_object_unref (l->data);
index b8c3d3691036146bcc12e648f0b9f4c717232623..11e237c8f640eb9a7df9ca3d268a0c30cdfc2916 100644 (file)
 
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 G_BEGIN_DECLS
 
 GtkWidget *empathy_accounts_dialog_show (GtkWindow *parent,
-                                        McAccount *selected_account);
+                                        EmpathyAccount *selected_account);
 
 G_END_DECLS
 
index 7f17f82ce2571ae7dc17e4c388554a5cc99dd042..cf1b23ef4da20cd8f7230ee33bf4c51b84a49a29 100644 (file)
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkScrolledWindow" id="scrolledwindow17">
+                    <property name="height_request">200</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkTreeView" id="treeview">
-                        <property name="width_request">250</property>
-                        <property name="height_request">200</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="enable_search">False</property>
             </child>
             <child>
               <object class="GtkVBox" id="vbox214">
-                <property name="width_request">415</property>
                 <property name="visible">True</property>
                 <property name="spacing">18</property>
                 <child>
index 4ad1b260930faba66dcb3f1ad3be3c4a29c7fed1..a71e9c8bebdaf2d27c6ce4119043bb8be77d775a 100644 (file)
@@ -40,9 +40,9 @@
 #include <libempathy-gtk/empathy-audio-sink.h>
 #include <libempathy-gtk/empathy-video-src.h>
 #include <libempathy-gtk/empathy-ui-utils.h>
+#include <libempathy-gtk/empathy-sound.h>
 
 #include "empathy-call-window.h"
-
 #include "empathy-call-window-fullscreen.h"
 #include "empathy-sidebar.h"
 
 #define REMOTE_CONTACT_AVATAR_DEFAULT_WIDTH EMPATHY_VIDEO_WIDGET_DEFAULT_HEIGHT
 #define REMOTE_CONTACT_AVATAR_DEFAULT_HEIGHT EMPATHY_VIDEO_WIDGET_DEFAULT_HEIGHT
 
-#define CONNECTING_STATUS_TEXT _("Connecting...")
-
 /* If an video input error occurs, the error message will start with "v4l" */
 #define VIDEO_INPUT_ERROR_PREFIX "v4l"
 
+/* The time interval in milliseconds between 2 outgoing rings */
+#define MS_BETWEEN_RING 500
+
 G_DEFINE_TYPE(EmpathyCallWindow, empathy_call_window, GTK_TYPE_WINDOW)
 
 /* signal enum */
@@ -81,6 +82,13 @@ enum {
   PROP_CALL_HANDLER = 1,
 };
 
+typedef enum {
+  CONNECTING,
+  CONNECTED,
+  DISCONNECTED,
+  REDIALING
+} CallState;
+
 /* private structure */
 typedef struct _EmpathyCallWindowPriv EmpathyCallWindowPriv;
 
@@ -90,7 +98,8 @@ struct _EmpathyCallWindowPriv
   EmpathyCallHandler *handler;
   EmpathyContact *contact;
 
-  gboolean connected;
+  guint call_state;
+  gboolean outgoing;
 
   GtkUIManager *ui_manager;
   GtkWidget *video_output;
@@ -165,10 +174,6 @@ struct _EmpathyCallWindowPriv
   gboolean sidebar_was_visible_before_fs;
   gint original_width_before_fs;
   gint original_height_before_fs;
-
-  /* Used to indicate if we are currently redialing. If we are, as soon as the
-     channel is closed, the call is automatically re-initiated.*/
-  gboolean redialing;
 };
 
 #define GET_PRIV(o) \
@@ -488,7 +493,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 (
@@ -649,6 +654,19 @@ empathy_call_window_setup_video_preview (EmpathyCallWindow *window)
   gst_element_set_state (priv->video_tee, GST_STATE_PLAYING);
 }
 
+static void
+empathy_call_window_set_state_connecting (EmpathyCallWindow *window)
+{
+  EmpathyCallWindowPriv *priv = GET_PRIV (window);
+
+  empathy_call_window_status_message (window, _("Connecting..."));
+  priv->call_state = CONNECTING;
+
+  if (priv->outgoing)
+    empathy_sound_start_playing (GTK_WIDGET (window),
+        EMPATHY_SOUND_PHONE_OUTGOING, MS_BETWEEN_RING);
+}
+
 static void
 empathy_call_window_init (EmpathyCallWindow *self)
 {
@@ -778,8 +796,6 @@ empathy_call_window_init (EmpathyCallWindow *self)
   g_signal_connect (G_OBJECT (self), "key-press-event",
       G_CALLBACK (empathy_call_window_key_press_cb), self);
 
-  empathy_call_window_status_message (self, CONNECTING_STATUS_TEXT);
-
   priv->timer = g_timer_new ();
 
   g_object_ref (priv->ui_manager);
@@ -921,10 +937,18 @@ empathy_call_window_constructed (GObject *object)
 {
   EmpathyCallWindow *self = EMPATHY_CALL_WINDOW (object);
   EmpathyCallWindowPriv *priv = GET_PRIV (self);
+  EmpathyTpCall *call;
 
   g_assert (priv->handler != NULL);
+
+  g_object_get (priv->handler, "tp-call", &call, NULL);
+  priv->outgoing = (call == NULL);
+  if (call != NULL)
+    g_object_unref (call);
+
   empathy_call_window_setup_avatars (self, priv->handler);
   empathy_call_window_setup_video_preview_visibility (self, priv->handler);
+  empathy_call_window_set_state_connecting (self);
 }
 
 static void empathy_call_window_dispose (GObject *object);
@@ -985,7 +1009,6 @@ empathy_call_window_class_init (
     G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
   g_object_class_install_property (object_class,
     PROP_CALL_HANDLER, param_spec);
-
 }
 
 static void
@@ -1180,7 +1203,11 @@ empathy_call_window_disconnected (EmpathyCallWindow *self)
   EmpathyCallWindowPriv *priv = GET_PRIV (self);
   gboolean could_reset_pipeline = empathy_call_window_reset_pipeline (self);
 
-  priv->connected = FALSE;
+  if (priv->call_state == CONNECTING)
+      empathy_sound_stop (EMPATHY_SOUND_PHONE_OUTGOING);
+
+  if (priv->call_state != REDIALING)
+    priv->call_state = DISCONNECTED;
 
   if (could_reset_pipeline)
     {
@@ -1201,13 +1228,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);
@@ -1232,11 +1263,8 @@ empathy_call_window_channel_closed_cb (TfChannel *channel, gpointer user_data)
   EmpathyCallWindow *self = EMPATHY_CALL_WINDOW (user_data);
   EmpathyCallWindowPriv *priv = GET_PRIV (self);
 
-  if (empathy_call_window_disconnected (self) && priv->redialing)
-    {
+  if (empathy_call_window_disconnected (self) && priv->call_state == REDIALING)
       empathy_call_window_restart_call (self);
-      priv->redialing = FALSE;
-    }
 }
 
 /* Called with global lock held */
@@ -1348,6 +1376,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);
@@ -1377,11 +1407,12 @@ empathy_call_window_src_added_cb (EmpathyCallHandler *handler,
 
   g_mutex_lock (priv->lock);
 
-  if (priv->connected == FALSE)
+  if (priv->call_state != CONNECTED)
     {
       g_timer_start (priv->timer);
       priv->timer_id = g_idle_add  (empathy_call_window_connected, self);
-      priv->connected = TRUE;
+      priv->call_state = CONNECTED;
+      empathy_sound_stop (EMPATHY_SOUND_PHONE_OUTGOING);
     }
 
   switch (media_type)
@@ -1623,6 +1654,9 @@ empathy_call_window_delete_cb (GtkWidget *widget, GdkEvent*event,
   if (priv->pipeline != NULL)
     gst_element_set_state (priv->pipeline, GST_STATE_NULL);
 
+  if (priv->call_state == CONNECTING)
+    empathy_sound_stop (EMPATHY_SOUND_PHONE_OUTGOING);
+
   return FALSE;
 }
 
@@ -1790,7 +1824,7 @@ empathy_call_window_camera_toggled_cb (GtkToggleToolButton *toggle,
   EmpathyCallWindowPriv *priv = GET_PRIV (window);
   gboolean active;
 
-  if (!priv->connected)
+  if (priv->call_state != CONNECTED)
     return;
 
   active = (gtk_toggle_tool_button_get_active (toggle));
@@ -1809,7 +1843,7 @@ empathy_call_window_send_video_toggled_cb (GtkToggleAction *toggle,
   EmpathyCallWindowPriv *priv = GET_PRIV (window);
   gboolean active;
 
-  if (!priv->connected)
+  if (priv->call_state != CONNECTED)
     return;
 
   active = (gtk_toggle_action_get_active (toggle));
@@ -1850,6 +1884,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)
@@ -1922,7 +1959,9 @@ empathy_call_window_restart_call (EmpathyCallWindow *window)
   if (!empathy_call_handler_has_initial_video (priv->handler))
     gtk_widget_hide (priv->self_user_output_frame);
 
-  empathy_call_window_status_message (window, CONNECTING_STATUS_TEXT);
+  priv->outgoing = TRUE;
+  empathy_call_window_set_state_connecting (window);
+
   priv->call_started = TRUE;
   empathy_call_handler_start_call (priv->handler);
   empathy_call_window_setup_avatars (window, priv->handler);
@@ -1938,12 +1977,12 @@ empathy_call_window_redial_cb (gpointer object,
 {
   EmpathyCallWindowPriv *priv = GET_PRIV (window);
 
-  if (priv->connected)
-    priv->redialing = TRUE;
+  if (priv->call_state == CONNECTED)
+    priv->call_state = REDIALING;
 
   empathy_call_handler_stop_call (priv->handler);
 
-  if (!priv->connected)
+  if (priv->call_state != CONNECTED)
     empathy_call_window_restart_call (window);
 }
 
index 118c7375e973989543aa08742f24cdea34d8182d..f9d0b924accb516b586c13f0c4a4482b8d2ee803 100644 (file)
@@ -50,6 +50,7 @@
 #include <libempathy-gtk/empathy-log-window.h>
 #include <libempathy-gtk/empathy-geometry.h>
 #include <libempathy-gtk/empathy-smiley-manager.h>
+#include <libempathy-gtk/empathy-sound.h>
 #include <libempathy-gtk/empathy-ui-utils.h>
 
 #include "empathy-chat-window.h"
@@ -77,6 +78,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;
@@ -406,7 +408,7 @@ chat_window_update_chat_tab (EmpathyChat *chat)
        EmpathyContact        *remote_contact;
        const gchar           *name;
        const gchar           *id;
-       McAccount             *account;
+       EmpathyAccount        *account;
        const gchar           *subject;
        const gchar           *status = NULL;
        GtkWidget             *widget;
@@ -427,7 +429,7 @@ chat_window_update_chat_tab (EmpathyChat *chat)
        remote_contact = empathy_chat_get_remote_contact (chat);
 
        DEBUG ("Updating chat tab, name=%s, account=%s, subject=%s, remote_contact=%p",
-               name, mc_account_get_unique_name (account), subject, remote_contact);
+               name, empathy_account_get_unique_name (account), subject, remote_contact);
 
        /* Update tab image */
        if (g_list_find (priv->chats_new_msg, chat)) {
@@ -459,7 +461,7 @@ chat_window_update_chat_tab (EmpathyChat *chat)
        append_markup_printf (tooltip,
                              "<b>%s</b><small> (%s)</small>",
                              id,
-                             mc_account_get_display_name (account));
+                             empathy_account_get_display_name (account));
 
        if (!EMP_STR_EMPTY (status)) {
                append_markup_printf (tooltip, "\n<i>%s</i>", status);
@@ -547,24 +549,45 @@ 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);
        if (is_room) {
                const gchar *room;
-               McAccount   *account;
-               gboolean     found;
+               EmpathyAccount   *account;
+               gboolean     found = FALSE;
+               EmpathyChatroom *chatroom;
 
                room = empathy_chat_get_id (priv->current_chat);
                account = empathy_chat_get_account (priv->current_chat);
-               found = empathy_chatroom_manager_find (priv->chatroom_manager,
-                                                      account, room) != NULL;
+               chatroom = empathy_chatroom_manager_find (priv->chatroom_manager,
+                                                      account, room);
+               if (chatroom != NULL)
+                       found = empathy_chatroom_is_favorite (chatroom);
 
                DEBUG ("This room %s favorite", found ? "is" : "is not");
                gtk_toggle_action_set_active (
                        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
@@ -582,7 +605,7 @@ chat_window_favorite_toggled_cb (GtkToggleAction   *toggle_action,
 {
        EmpathyChatWindowPriv *priv = GET_PRIV (window);
        gboolean               active;
-       McAccount             *account;
+       EmpathyAccount        *account;
        const gchar           *room;
        EmpathyChatroom       *chatroom;
 
@@ -593,19 +616,28 @@ chat_window_favorite_toggled_cb (GtkToggleAction   *toggle_action,
        chatroom = empathy_chatroom_manager_find (priv->chatroom_manager,
                                                  account, room);
 
-       if (active && !chatroom) {
+       if (chatroom == NULL) {
                const gchar *name;
 
                name = empathy_chat_get_name (priv->current_chat);
                chatroom = empathy_chatroom_new_full (account, room, name, FALSE);
                empathy_chatroom_manager_add (priv->chatroom_manager, chatroom);
                g_object_unref (chatroom);
-               return;
-       }
-       
-       if (!active && chatroom) {
-               empathy_chatroom_manager_remove (priv->chatroom_manager, chatroom);
-       }
+  }
+
+       empathy_chatroom_set_favorite (chatroom, active);
+}
+
+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 *
@@ -942,11 +974,15 @@ chat_window_show_or_update_notification (EmpathyChatWindow *window,
        if (priv->notification != NULL) {
                notify_notification_update (priv->notification,
                                            header, escaped, NULL);
-               notify_notification_set_icon_from_pixbuf (priv->notification, pixbuf);
+               /* if icon doesn't exist libnotify will crash */
+               if (pixbuf != NULL)
+                       notify_notification_set_icon_from_pixbuf (priv->notification, pixbuf);
        } else {
                priv->notification = notify_notification_new (header, escaped, NULL, NULL);
                notify_notification_set_timeout (priv->notification, NOTIFY_EXPIRES_DEFAULT);
-               notify_notification_set_icon_from_pixbuf (priv->notification, pixbuf);
+               /* if icon doesn't exist libnotify will crash */
+               if (pixbuf != NULL)
+                       notify_notification_set_icon_from_pixbuf (priv->notification, pixbuf);
 
                g_signal_connect (priv->notification, "closed",
                                  G_CALLBACK (chat_window_notification_closed_cb), cb_data);
@@ -1179,7 +1215,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);
 
@@ -1199,55 +1235,54 @@ chat_window_drag_data_received (GtkWidget        *widget,
        if (info == DND_DRAG_TYPE_CONTACT_ID) {
                EmpathyChat           *chat;
                EmpathyChatWindow     *old_window;
-               McAccount             *account;
+               EmpathyAccount        *account;
+               EmpathyAccountManager *account_manager;
                const gchar           *id;
                gchar                **strv;
                const gchar           *account_id;
                const gchar           *contact_id;
 
                id = (const gchar*) selection->data;
+               account_manager = empathy_account_manager_dup_singleton ();
 
                DEBUG ("DND contact from roster with id:'%s'", id);
-               
+
                strv = g_strsplit (id, "/", 2);
                account_id = strv[0];
                contact_id = strv[1];
-               account = mc_account_lookup (account_id);
+               account = empathy_account_manager_lookup (account_manager, account_id);
                chat = empathy_chat_window_find_chat (account, contact_id);
 
                if (!chat) {
-                       EmpathyAccountManager *account_manager;
                        TpConnection *connection;
 
-                       account_manager = empathy_account_manager_dup_singleton ();
-                       connection = empathy_account_manager_get_connection (
-                               account_manager, account);
+                       connection = empathy_account_get_connection (account);
 
                        if (connection) {
                                empathy_dispatcher_chat_with_contact_id (
                                        connection, contact_id, NULL, NULL);
                        }
 
-                       g_object_unref (account_manager);
                        g_object_unref (account);
                        g_strfreev (strv);
                        return;
                }
                g_object_unref (account);
+               g_object_unref (account_manager);
                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 +1313,7 @@ chat_window_drag_data_received (GtkWidget        *widget,
                                gtk_drag_finish (context, TRUE, FALSE, time);
                                return;
                        }
-                       
+
                        priv->dnd_same_window = FALSE;
                }
 
@@ -1368,6 +1403,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 +1420,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 +1602,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.
@@ -1702,12 +1739,11 @@ empathy_chat_window_has_focus (EmpathyChatWindow *window)
 }
 
 EmpathyChat *
-empathy_chat_window_find_chat (McAccount   *account,
+empathy_chat_window_find_chat (EmpathyAccount   *account,
                               const gchar *id)
 {
        GList *l;
 
-       g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
        g_return_val_if_fail (!EMP_STR_EMPTY (id), NULL);
 
        for (l = chat_windows; l; l = l->next) {
index c46ef8fc43b42f1249b58885e13a8da099f899d9..6f3d21fca10343df553235982407a3a6ef3182b9 100644 (file)
@@ -31,7 +31,7 @@
 #include <glib-object.h>
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 #include <libempathy-gtk/empathy-chat.h>
 
 G_BEGIN_DECLS
@@ -69,7 +69,7 @@ void               empathy_chat_window_move_chat      (EmpathyChatWindow *old_wi
 void               empathy_chat_window_switch_to_chat (EmpathyChatWindow *window,
                                                       EmpathyChat       *chat);
 gboolean           empathy_chat_window_has_focus      (EmpathyChatWindow *window);
-EmpathyChat *      empathy_chat_window_find_chat      (McAccount        *account,
+EmpathyChat *      empathy_chat_window_find_chat      (EmpathyAccount   *account,
                                                       const gchar      *id);
 void               empathy_chat_window_present_chat   (EmpathyChat      *chat);
 
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 a0fb8e6ec84188b172b95816f0d3a4f578244f0b..3b5dd1f77cf20bcbe973e864b1c307f4ba376966 100644 (file)
@@ -308,7 +308,7 @@ chatrooms_window_model_refresh_data (EmpathyChatroomsWindow *window,
        GtkTreeIter            iter;
        GtkTreeViewColumn     *column;
        EmpathyAccountChooser  *account_chooser;
-       McAccount             *account;
+       EmpathyAccount        *account;
        GList                 *chatrooms, *l;
 
        view = GTK_TREE_VIEW (window->treeview);
@@ -506,7 +506,7 @@ chatrooms_window_chatroom_added_cb (EmpathyChatroomManager *manager,
                                    EmpathyChatroomsWindow *window)
 {
        EmpathyAccountChooser *account_chooser;
-       McAccount            *account;
+       EmpathyAccount       *account;
 
        account_chooser = EMPATHY_ACCOUNT_CHOOSER (window->account_chooser);
        account = empathy_account_chooser_dup_account (account_chooser);
index f6fe6e8b27e151512d2e6ae12cdae1c57f8abca0..cd0d925f9447be22af68f68212cfa32354073471 100644 (file)
@@ -430,8 +430,6 @@ debug_dialog_get_name_owner_cb (TpDBusDaemon *proxy,
           COL_CM_NAME, data->cm_name,
           COL_CM_UNIQUE_NAME, out,
           -1);
-
-      gtk_combo_box_set_active (GTK_COMBO_BOX (priv->cm_chooser), 0);
     }
 
 OUT:
@@ -568,6 +566,7 @@ debug_dialog_fill_cm_chooser (EmpathyDebugDialog *debug_dialog)
 {
   EmpathyDebugDialogPriv *priv = GET_PRIV (debug_dialog);
   GError *error = NULL;
+  GtkTreeIter iter;
 
   priv->dbus = tp_dbus_daemon_dup (&error);
 
@@ -578,6 +577,15 @@ debug_dialog_fill_cm_chooser (EmpathyDebugDialog *debug_dialog)
       return;
     }
 
+  /* Add empathy */
+  gtk_list_store_append (priv->cms, &iter);
+  gtk_list_store_set (priv->cms, &iter,
+      COL_CM_NAME, "empathy",
+      COL_CM_UNIQUE_NAME, "org.gnome.Empathy",
+      -1);
+  gtk_combo_box_set_active (GTK_COMBO_BOX (priv->cm_chooser), 0);
+
+  /* Add CMs to list */
   tp_list_connection_names (priv->dbus, debug_dialog_list_connection_names_cb,
       debug_dialog, NULL, NULL);
 
index 1ee619e5827021bf69175cc6fa299166dc7ae5c2..1a7ec09cbf6215df2b6475e0a0a148febbf26789 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>
 
 #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>
+#include <libempathy-gtk/empathy-sound.h>
 
 #include "empathy-event-manager.h"
 #include "empathy-main-window.h"
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyEventManager)
 
+#define NOTIFICATION_TIMEOUT 2 /* seconds */
+
+/* The time interval in milliseconds between 2 incoming rings */
+#define MS_BETWEEN_RING 500
+
 typedef struct {
   EmpathyEventManager *manager;
   EmpathyDispatchOperation *operation;
@@ -74,8 +81,6 @@ typedef struct {
   /* Ongoing approvals */
   GSList *approvals;
 
-  /* voip ringing sound */
-  guint voip_timeout;
   gint ringing;
 } EmpathyEventManagerPriv;
 
@@ -161,81 +166,6 @@ event_free (EventPriv *event)
   g_slice_free (EventPriv, event);
 }
 
-static void event_manager_ringing_finished_cb (ca_context *c, guint id,
-  int error_code, gpointer user_data);
-
-static gboolean
-event_manager_ringing_timeout_cb (gpointer data)
-{
-  EmpathyEventManager *manager = EMPATHY_EVENT_MANAGER (data);
-  EmpathyEventManagerPriv *priv = GET_PRIV (manager);
-
-  priv->voip_timeout = 0;
-
-  empathy_sound_play_full (empathy_main_window_get (),
-      EMPATHY_SOUND_PHONE_INCOMING, event_manager_ringing_finished_cb,
-      manager);
-
-  return FALSE;
-}
-
-static gboolean
-event_manager_ringing_idle_cb (gpointer data)
-{
-  EmpathyEventManager *manager = EMPATHY_EVENT_MANAGER (data);
-  EmpathyEventManagerPriv *priv = GET_PRIV (manager);
-
-  if (priv->ringing > 0)
-    priv->voip_timeout = g_timeout_add (500, event_manager_ringing_timeout_cb,
-      data);
-
-  return FALSE;
-}
-
-static void
-event_manager_ringing_finished_cb (ca_context *c, guint id, int error_code,
-  gpointer user_data)
-{
-  if (error_code == CA_ERROR_CANCELED)
-    return;
-
-  g_idle_add (event_manager_ringing_idle_cb, user_data);
-}
-
-static void
-event_manager_start_ringing (EmpathyEventManager *manager)
-{
-  EmpathyEventManagerPriv *priv = GET_PRIV (manager);
-
-  priv->ringing++;
-
-  if (priv->ringing == 1)
-    {
-      empathy_sound_play_full (empathy_main_window_get (),
-        EMPATHY_SOUND_PHONE_INCOMING, event_manager_ringing_finished_cb,
-        manager);
-    }
-}
-
-static void
-event_manager_stop_ringing (EmpathyEventManager *manager)
-{
-  EmpathyEventManagerPriv *priv = GET_PRIV (manager);
-
-  priv->ringing--;
-
-  if (priv->ringing > 0)
-    return;
-
-  empathy_sound_stop (EMPATHY_SOUND_PHONE_INCOMING);
-
-  if (priv->voip_timeout != 0)
-    {
-      g_source_remove (priv->voip_timeout);
-      priv->voip_timeout = 0;
-    }
-}
-
 static void
 event_remove (EventPriv *event)
 {
@@ -247,6 +177,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 +197,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 +207,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
@@ -455,7 +399,9 @@ event_manager_approval_done (EventManagerApproval *approval)
           approval->operation);
       if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_STREAMED_MEDIA)
         {
-          event_manager_stop_ringing (approval->manager);
+          priv->ringing--;
+          if (priv->ringing == 0)
+            empathy_sound_stop (EMPATHY_SOUND_PHONE_INCOMING);
         }
     }
 
@@ -500,6 +446,7 @@ event_manager_operation_invalidated_cb (EmpathyDispatchOperation *operation,
 static void
 event_manager_media_channel_got_contact (EventManagerApproval *approval)
 {
+  EmpathyEventManagerPriv *priv = GET_PRIV (approval->manager);
   gchar *header;
 
   header = g_strdup_printf (_("Incoming call from %s"),
@@ -510,7 +457,11 @@ event_manager_media_channel_got_contact (EventManagerApproval *approval)
     approval, event_channel_process_voip_func, NULL);
 
   g_free (header);
-  event_manager_start_ringing (approval->manager);
+
+  priv->ringing++;
+  if (priv->ringing == 1)
+    empathy_sound_start_playing (empathy_main_window_get (),
+        EMPATHY_SOUND_PHONE_INCOMING, MS_BETWEEN_RING);
 }
 
 static void
@@ -956,6 +907,58 @@ 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)
+{
+  EmpathyAccount *account;
+  gchar *header = NULL;
+  gboolean preference = FALSE;
+
+  account = empathy_contact_get_account (contact);
+  if (empathy_account_is_just_connected (account))
+    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,
@@ -981,6 +984,9 @@ event_manager_finalize (GObject *object)
 {
   EmpathyEventManagerPriv *priv = GET_PRIV (object);
 
+  if (priv->ringing > 0)
+    empathy_sound_stop (EMPATHY_SOUND_PHONE_INCOMING);
+
   g_slist_foreach (priv->events, (GFunc) event_free, NULL);
   g_slist_free (priv->events);
   g_slist_foreach (priv->approvals, (GFunc) event_manager_approval_free, NULL);
@@ -1034,6 +1040,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 +1055,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 *
@@ -1093,4 +1107,3 @@ empathy_event_inhibit_updates (EmpathyEvent *event_public)
 
   event->inhibit = TRUE;
 }
-
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 8e9a04595d666703f1152bd7fd2127496920d629..1e135892df5e8887bc489071d0b574b2888c7c37 100644 (file)
@@ -27,7 +27,6 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <telepathy-glib/util.h>
 
 #include "empathy-import-dialog.h"
@@ -36,6 +35,7 @@
 #define DEBUG_FLAG EMPATHY_DEBUG_OTHER
 #include <libempathy/empathy-debug.h>
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-account-manager.h>
 
 #include <libempathy-gtk/empathy-ui-utils.h>
 
@@ -91,13 +91,16 @@ empathy_import_account_data_free (EmpathyImportAccountData *data)
 static void
 import_dialog_add_account (EmpathyImportAccountData *data)
 {
-  McAccount *account;
+  EmpathyAccountManager *account_manager;
+  EmpathyAccount *account;
   GHashTableIter iter;
   gpointer key, value;
   gchar *display_name;
   GValue *username;
 
-  account = mc_account_create (data->profile);
+  account_manager = empathy_account_manager_dup_singleton ();
+  account = empathy_account_manager_create (account_manager, data->profile);
+  g_object_unref (account_manager);
   if (account == NULL)
     {
       DEBUG ("Failed to create account");
@@ -115,21 +118,21 @@ import_dialog_add_account (EmpathyImportAccountData *data)
           case G_TYPE_STRING:
             DEBUG ("Set param '%s' to '%s' (string)",
                 param, g_value_get_string (gvalue));
-            mc_account_set_param_string (account,
+            empathy_account_set_param_string (account,
                 param, g_value_get_string (gvalue));
             break;
 
           case G_TYPE_BOOLEAN:
             DEBUG ("Set param '%s' to %s (boolean)",
                 param, g_value_get_boolean (gvalue) ? "TRUE" : "FALSE");
-            mc_account_set_param_boolean (account,
+            empathy_account_set_param_boolean (account,
                 param, g_value_get_boolean (gvalue));
             break;
 
           case G_TYPE_INT:
             DEBUG ("Set param '%s' to '%i' (integer)",
                 param, g_value_get_int (gvalue));
-            mc_account_set_param_int (account,
+            empathy_account_set_param_int (account,
                 param, g_value_get_int (gvalue));
             break;
         }
@@ -140,7 +143,7 @@ import_dialog_add_account (EmpathyImportAccountData *data)
   display_name = g_strdup_printf ("%s (%s)",
       mc_profile_get_display_name (data->profile),
       g_value_get_string (username));
-  mc_account_set_display_name (account, display_name);
+  empathy_account_set_display_name (account, display_name);
 
   g_free (display_name);
   g_object_unref (account);
@@ -155,11 +158,12 @@ import_dialog_account_id_in_list (GList *accounts,
   for (l = accounts; l; l = l->next)
     {
       McAccount *account = l->data;
-      gchar *value;
+      gchar *value = NULL;
       gboolean result;
 
-      if (mc_account_get_param_string (account, "account", &value)
-          == MC_ACCOUNT_SETTING_ABSENT)
+      mc_account_get_param_string (account, "account", &value);
+
+      if (value == NULL)
         continue;
 
       result = tp_strdiff (value, account_id);
index a3ef3e13c782168079c6f3ba2280d81d06e7bc5c..0e3fd148f70b60469642b6a92c804145e1e5cc3b 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include <gtk/gtk.h>
+#include <libmissioncontrol/mc-profile.h>
 
 #ifndef __EMPATHY_IMPORT_DIALOG_H__
 #define __EMPATHY_IMPORT_DIALOG_H__
index 804936eaec94f38c089f2245691a00b0fe11a3cd..935c022eabb01c68d7419a1b3d0989e5fc1a1d29 100644 (file)
@@ -28,7 +28,6 @@
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 
-#include <libmissioncontrol/mc-account.h>
 #include <telepathy-glib/util.h>
 #include <telepathy-glib/dbus.h>
 
index 5830d2b71b00c78c64fc5cf0a0b2a9d92f88ba20..c7816d7fd67a44c72bba6694d3276ecd259ee050 100644 (file)
 #include <libempathy/empathy-contact-manager.h>
 #include <libempathy/empathy-status-presets.h>
 
+#include <libempathy-gtk/empathy-conf.h>
 #include <libempathy-gtk/empathy-contact-dialogs.h>
 #include <libempathy-gtk/empathy-contact-list-store.h>
 #include <libempathy-gtk/empathy-contact-list-view.h>
-#include <libempathy-gtk/empathy-presence-chooser.h>
-#include <libempathy-gtk/empathy-ui-utils.h>
 #include <libempathy-gtk/empathy-geometry.h>
-#include <libempathy-gtk/empathy-conf.h>
-#include <libempathy-gtk/empathy-log-window.h>
-#include <libempathy-gtk/empathy-new-message-dialog.h>
 #include <libempathy-gtk/empathy-gtk-enum-types.h>
+#include <libempathy-gtk/empathy-new-message-dialog.h>
+#include <libempathy-gtk/empathy-log-window.h>
+#include <libempathy-gtk/empathy-presence-chooser.h>
+#include <libempathy-gtk/empathy-sound.h>
+#include <libempathy-gtk/empathy-ui-utils.h>
 
 #include <libmissioncontrol/mission-control.h>
 
@@ -197,7 +198,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;
                }
 
@@ -301,7 +302,7 @@ static void
 main_window_error_edit_clicked_cb (GtkButton         *button,
                                   EmpathyMainWindow *window)
 {
-       McAccount *account;
+       EmpathyAccount *account;
        GtkWidget *error_widget;
 
        account = g_object_get_data (G_OBJECT (button), "account");
@@ -316,7 +317,7 @@ static void
 main_window_error_clear_clicked_cb (GtkButton         *button,
                                    EmpathyMainWindow *window)
 {
-       McAccount *account;
+       EmpathyAccount *account;
        GtkWidget *error_widget;
 
        account = g_object_get_data (G_OBJECT (button), "account");
@@ -327,7 +328,7 @@ main_window_error_clear_clicked_cb (GtkButton         *button,
 
 static void
 main_window_error_display (EmpathyMainWindow *window,
-                          McAccount         *account,
+                          EmpathyAccount    *account,
                           const gchar       *message)
 {
        GtkWidget *child;
@@ -348,7 +349,7 @@ main_window_error_display (EmpathyMainWindow *window,
 
                /* Just set the latest error and return */
                str = g_markup_printf_escaped ("<b>%s</b>\n%s",
-                                              mc_account_get_display_name (account),
+                                              empathy_account_get_display_name (account),
                                               message);
                gtk_label_set_markup (GTK_LABEL (label), str);
                g_free (str);
@@ -429,7 +430,7 @@ main_window_error_display (EmpathyMainWindow *window,
        gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
 
        str = g_markup_printf_escaped ("<b>%s</b>\n%s",
-                                      mc_account_get_display_name (account),
+                                      empathy_account_get_display_name (account),
                                       message);
        gtk_label_set_markup (GTK_LABEL (label), str);
        g_free (str);
@@ -481,7 +482,7 @@ main_window_update_status (EmpathyMainWindow *window, EmpathyAccountManager *man
 
 static void
 main_window_connection_changed_cb (EmpathyAccountManager *manager,
-                                  McAccount *account,
+                                  EmpathyAccount *account,
                                   TpConnectionStatusReason reason,
                                   TpConnectionStatus current,
                                   TpConnectionStatus previous,
@@ -568,11 +569,11 @@ main_window_contact_presence_changed_cb (EmpathyContactMonitor *monitor,
                                         TpConnectionPresenceType previous,
                                         EmpathyMainWindow *window)
 {
-       McAccount *account;
+       EmpathyAccount *account;
        gboolean should_play;
 
        account = empathy_contact_get_account (contact);
-       should_play = !empathy_account_manager_is_account_just_connected (window->account_manager, account);
+       should_play = !empathy_account_is_just_connected (account);
 
        if (!should_play) {
                return;
@@ -728,16 +729,13 @@ main_window_view_show_map_cb (GtkCheckMenuItem  *item,
 static void
 main_window_favorite_chatroom_join (EmpathyChatroom *chatroom)
 {
-       EmpathyAccountManager *manager;
-       McAccount      *account;
+       EmpathyAccount *account;
        TpConnection   *connection;
        const gchar    *room;
 
-       manager = empathy_account_manager_dup_singleton ();
        account = empathy_chatroom_get_account (chatroom);
-       connection = empathy_account_manager_get_connection (manager, account);
+       connection = empathy_account_get_connection (account);
        room = empathy_chatroom_get_room (chatroom);
-       g_object_unref (manager);
 
        if (connection != NULL) {
                DEBUG ("Requesting channel for '%s'", room);
@@ -1008,7 +1006,7 @@ main_window_configure_event_cb (GtkWidget         *widget,
 
 static void
 main_window_account_created_or_deleted_cb (EmpathyAccountManager  *manager,
-                                          McAccount              *account,
+                                          EmpathyAccount         *account,
                                           EmpathyMainWindow      *window)
 {
        gtk_action_set_sensitive (window->view_history,
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..e16da91a7b2076d2fc7f9aeca5a7a5ac6520f989 100644 (file)
@@ -33,7 +33,6 @@
 #include <glib/gprintf.h>
 
 #include <libmissioncontrol/mission-control.h>
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mc-profile.h>
 
 #include <libempathy/empathy-tp-roomlist.h>
@@ -358,14 +357,14 @@ static void
 new_chatroom_dialog_update_widgets (EmpathyNewChatroomDialog *dialog)
 {
        EmpathyAccountChooser *account_chooser;
-       McAccount             *account;
+       EmpathyAccount        *account;
        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);
+       profile = empathy_account_get_profile (account);
        protocol = mc_profile_get_protocol_name (profile);
 
        gtk_entry_set_text (GTK_ENTRY (dialog->entry_server), "");
@@ -399,12 +398,13 @@ new_chatroom_dialog_account_changed_cb (GtkComboBox             *combobox,
                                        EmpathyNewChatroomDialog *dialog)
 {
        EmpathyAccountChooser *account_chooser;
-       McAccount             *account;
+       EmpathyAccount        *account;
        gboolean               listing = FALSE;
        gboolean               expanded = FALSE;
 
        if (dialog->room_list) {
                g_object_unref (dialog->room_list);
+               dialog->room_list = NULL;
        }
 
        ephy_spinner_stop (EPHY_SPINNER (dialog->throbber));
@@ -412,6 +412,9 @@ new_chatroom_dialog_account_changed_cb (GtkComboBox             *combobox,
 
        account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser);
        account = empathy_account_chooser_dup_account (account_chooser);
+       if (account == NULL)
+               goto out;
+
        dialog->room_list = empathy_tp_roomlist_new (account);
 
        if (dialog->room_list) {
@@ -444,9 +447,10 @@ new_chatroom_dialog_account_changed_cb (GtkComboBox             *combobox,
                }
        }
 
-       new_chatroom_dialog_update_widgets (dialog);
-
        g_object_unref (account);
+
+out:
+       new_chatroom_dialog_update_widgets (dialog);
 }
 
 static void
@@ -545,7 +549,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 +576,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..38cfd3419aa6aa7f549fa113060fa52b2ef74e76 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>
                                 <property name="visible">True</property>
                                 <property name="spacing">6</property>
                                 <child>
-                                  <object class="GtkLabel" id="label1">
+                                  <object class="GtkLabel" id="label587">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Adium theme to use:</property>
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..f6c63c5372c85c95fbc86610a256a5bc578df1e1 100644 (file)
@@ -153,7 +153,9 @@ status_icon_update_notification (EmpathyStatusIcon *icon)
                                          G_CALLBACK (status_icon_notification_closed_cb), icon);
 
                }
-               notify_notification_set_icon_from_pixbuf (priv->notification,
+               /* if icon doesn't exist libnotify will crash */
+               if (pixbuf != NULL)
+                       notify_notification_set_icon_from_pixbuf (priv->notification,
                                                          pixbuf);
                notify_notification_show (priv->notification, NULL);
 
@@ -229,13 +231,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 +263,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) {
@@ -303,14 +306,20 @@ status_icon_set_visibility (EmpathyStatusIcon *icon,
                empathy_window_iconify (priv->window, priv->icon);
        } else {
                GList *accounts;
+               GList *l;
+               gboolean one_enabled = FALSE;
 
                empathy_window_present (GTK_WINDOW (priv->window), TRUE);
 
                /* Show the accounts dialog if there is no enabled accounts */
-               accounts = mc_accounts_list_by_enabled (TRUE);
-               if (accounts) {
-                       mc_accounts_list_free (accounts);
-               } else {
+               accounts = empathy_account_manager_dup_accounts (priv->account_manager);
+               for (l = accounts ; l != NULL ; l = g_list_next (l)) {
+                       one_enabled = empathy_account_is_enabled (EMPATHY_ACCOUNT (l->data))
+                               || one_enabled;
+                       g_object_unref (l->data);
+               }
+               g_list_free (accounts);
+               if (!one_enabled) {
                        DEBUG ("No enabled account, Showing account dialog");
                        empathy_accounts_dialog_show (GTK_WINDOW (priv->window), NULL);
                }
@@ -378,7 +387,7 @@ status_icon_key_press_event_cb  (GtkWidget *window,
        }
        return FALSE;
 }
-                               
+
 static void
 status_icon_activate_cb (GtkStatusIcon     *status_icon,
                         EmpathyStatusIcon *icon)
@@ -481,7 +490,7 @@ status_icon_create_menu (EmpathyStatusIcon *icon)
 
 static void
 status_icon_connection_changed_cb (EmpathyAccountManager *manager,
-                                  McAccount *account,
+                                  EmpathyAccount *account,
                                   TpConnectionStatusReason reason,
                                   TpConnectionStatus current,
                                   TpConnectionStatus previous,
index f23ce9145eb21a5d3c999989ef7f80f30b0d146a..40626b5327a5c090a04b36411d0e317c5f4fed2c 100644 (file)
@@ -40,7 +40,6 @@
 
 #include <telepathy-glib/dbus.h>
 #include <telepathy-glib/util.h>
-#include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mission-control.h>
 
 #include <libempathy/empathy-idle.h>
@@ -48,6 +47,7 @@
 #include <libempathy/empathy-call-factory.h>
 #include <libempathy/empathy-chatroom-manager.h>
 #include <libempathy/empathy-account-manager.h>
+#include <libempathy/empathy-debugger.h>
 #include <libempathy/empathy-dispatcher.h>
 #include <libempathy/empathy-dispatch-operation.h>
 #include <libempathy/empathy-log-manager.h>
@@ -106,7 +106,7 @@ dispatch_cb (EmpathyDispatcher *dispatcher,
                if (id) {
                        EmpathyAccountManager *manager;
                        TpConnection *connection;
-                       McAccount *account;
+                       EmpathyAccount *account;
 
                        manager = empathy_account_manager_dup_singleton ();
                        connection = empathy_tp_chat_get_connection (tp_chat);
@@ -226,7 +226,8 @@ create_salut_account (void)
        McProfile  *profile;
        McProtocol *protocol;
        gboolean    salut_created = FALSE;
-       McAccount  *account;
+       EmpathyAccount  *account;
+       EmpathyAccountManager *account_manager;
        GList      *accounts;
        EBook      *book;
        EContact   *contact;
@@ -283,15 +284,17 @@ create_salut_account (void)
                return;
        }
 
-       account = mc_account_create (profile);
-       mc_account_set_display_name (account, _("People nearby"));
-       
+       account_manager = empathy_account_manager_dup_singleton ();
+       account = empathy_account_manager_create (account_manager, profile);
+       empathy_account_set_display_name (account, _("People nearby"));
+       g_object_unref (account_manager);
+
        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;
@@ -301,11 +304,11 @@ create_salut_account (void)
                "last-name=%s\nemail=%s\njid=%s\n",
                nickname, first_name, last_name, email, jid);
 
-       mc_account_set_param_string (account, "nickname", nickname ? nickname : "");
-       mc_account_set_param_string (account, "first-name", first_name ? first_name : "");
-       mc_account_set_param_string (account, "last-name", last_name ? last_name : "");
-       mc_account_set_param_string (account, "email", email ? email : "");
-       mc_account_set_param_string (account, "jid", jid ? jid : "");
+       empathy_account_set_param_string (account, "nickname", nickname ? nickname : "");
+       empathy_account_set_param_string (account, "first-name", first_name ? first_name : "");
+       empathy_account_set_param_string (account, "last-name", last_name ? last_name : "");
+       empathy_account_set_param_string (account, "email", email ? email : "");
+       empathy_account_set_param_string (account, "jid", jid ? jid : "");
 
        g_free (nickname);
        g_free (first_name);
@@ -450,6 +453,31 @@ new_call_handler_cb (EmpathyCallFactory *factory, EmpathyCallHandler *handler,
        gtk_widget_show (GTK_WIDGET (window));
 }
 
+#ifdef ENABLE_DEBUG
+static void
+default_log_handler (const gchar *log_domain,
+    GLogLevelFlags log_level,
+    const gchar *message,
+    gpointer user_data)
+{
+       g_log_default_handler (log_domain, log_level, message, NULL);
+
+       /* G_LOG_DOMAIN = "empathy". No need to send empathy messages to the
+        * debugger as they already have in empathy_debug. */
+       if (log_level != G_LOG_LEVEL_DEBUG
+           || tp_strdiff (log_domain, G_LOG_DOMAIN)) {
+               EmpathyDebugger *dbg;
+               GTimeVal now;
+
+               dbg = empathy_debugger_get_singleton ();
+               g_get_current_time (&now);
+
+               empathy_debugger_add_message (dbg, &now, log_domain,
+                                             log_level, message);
+       }
+}
+#endif /* ENABLE_DEBUG */
+
 int
 main (int argc, char *argv[])
 {
@@ -514,6 +542,11 @@ main (int argc, char *argv[])
        gtk_window_set_default_icon_name ("empathy");
        textdomain (GETTEXT_PACKAGE);
 
+#ifdef ENABLE_DEBUG
+       /* Set up debugger */
+       g_log_set_default_handler (default_log_handler, NULL);
+#endif
+
         /* Setting up the bacon connection */
        startup_timestamp = get_startup_timestamp ();
        connection = bacon_message_connection_new ("empathy");
@@ -603,7 +636,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 ef5c7761853f08136791435c28e93cd8d8800ac5..1c0f924a200ef9542a5cbfa871ee155cad62e8dc 100644 (file)
@@ -13,6 +13,7 @@
 #include "check-empathy-helpers.h"
 
 #include <libempathy/empathy-chatroom-manager.h>
+#include <libempathy/empathy-account-manager.h>
 
 #define CHATROOM_SAMPLE "chatrooms-sample.xml"
 #define CHATROOM_FILE "chatrooms.xml"
@@ -43,7 +44,7 @@ struct chatroom_t
 
 static void
 check_chatrooms_list (EmpathyChatroomManager *mgr,
-                      McAccount *account,
+                      EmpathyAccount *account,
                       struct chatroom_t *_chatrooms,
                       guint nb_chatrooms)
 {
@@ -83,13 +84,13 @@ check_chatrooms_list (EmpathyChatroomManager *mgr,
 }
 
 static gboolean
-change_account_name_in_file (McAccount *account,
+change_account_name_in_file (EmpathyAccount *account,
                              const gchar *file)
 {
   gchar *cmd;
 
   cmd = g_strdup_printf ("sed -i 's/CHANGE_ME/%s/' %s",
-      mc_account_get_unique_name (account), file);
+      empathy_account_get_unique_name (account), file);
 
   if (system (cmd) == -1)
     {
@@ -106,11 +107,13 @@ START_TEST (test_empathy_chatroom_manager_dup_singleton)
 {
   EmpathyChatroomManager *mgr;
   gchar *file;
-  McAccount *account;
+  EmpathyAccount *account;
+  EmpathyAccountManager *account_manager;
   struct chatroom_t chatrooms[] = {
         { "name1", "room1", TRUE, TRUE },
         { "name2", "room2", FALSE, TRUE }};
 
+  account_manager = empathy_account_manager_dup_singleton ();
   account = get_test_account ();
 
   copy_xml_file (CHATROOM_SAMPLE, CHATROOM_FILE);
@@ -126,6 +129,7 @@ START_TEST (test_empathy_chatroom_manager_dup_singleton)
 
   g_free (file);
   g_object_unref (mgr);
+  g_object_unref (account_manager);
   g_object_unref (account);
 }
 END_TEST
@@ -134,7 +138,8 @@ START_TEST (test_empathy_chatroom_manager_add)
 {
   EmpathyChatroomManager *mgr;
   gchar *file;
-  McAccount *account;
+  EmpathyAccount *account;
+  EmpathyAccountManager *account_manager;
   struct chatroom_t chatrooms[] = {
         { "name1", "room1", TRUE, TRUE },
         { "name2", "room2", FALSE, TRUE },
@@ -142,6 +147,8 @@ START_TEST (test_empathy_chatroom_manager_add)
         { "name4", "room4", FALSE, FALSE }};
   EmpathyChatroom *chatroom;
 
+  account_manager = empathy_account_manager_dup_singleton ();
+
   account = get_test_account ();
 
   copy_xml_file (CHATROOM_SAMPLE, CHATROOM_FILE);
@@ -149,8 +156,7 @@ START_TEST (test_empathy_chatroom_manager_add)
   file = get_user_xml_file (CHATROOM_FILE);
 
   /* change the chatrooms XML file to use the account we just created */
-  if (!change_account_name_in_file (account, file))
-    return;
+  fail_unless (change_account_name_in_file (account, file));
 
   mgr = empathy_chatroom_manager_dup_singleton (file);
 
@@ -186,6 +192,7 @@ START_TEST (test_empathy_chatroom_manager_add)
 
   g_object_unref (mgr);
   g_free (file);
+  g_object_unref (account_manager);
   g_object_unref (account);
 }
 END_TEST
@@ -194,11 +201,13 @@ START_TEST (test_empathy_chatroom_manager_remove)
 {
   EmpathyChatroomManager *mgr;
   gchar *file;
-  McAccount *account;
+  EmpathyAccount *account;
   struct chatroom_t chatrooms[] = {
         { "name2", "room2", FALSE, TRUE }};
   EmpathyChatroom *chatroom;
+  EmpathyAccountManager *account_mgr;
 
+  account_mgr = empathy_account_manager_dup_singleton ();
   account = get_test_account ();
 
   copy_xml_file (CHATROOM_SAMPLE, CHATROOM_FILE);
@@ -206,8 +215,7 @@ START_TEST (test_empathy_chatroom_manager_remove)
   file = get_user_xml_file (CHATROOM_FILE);
 
   /* change the chatrooms XML file to use the account we just created */
-  if (!change_account_name_in_file (account, file))
-    return;
+  fail_unless (change_account_name_in_file (account, file));
 
   mgr = empathy_chatroom_manager_dup_singleton (file);
 
@@ -241,6 +249,7 @@ START_TEST (test_empathy_chatroom_manager_remove)
   g_object_unref (mgr);
   g_free (file);
   g_object_unref (account);
+  g_object_unref (account_mgr);
 }
 END_TEST
 
@@ -248,12 +257,14 @@ START_TEST (test_empathy_chatroom_manager_change_favorite)
 {
   EmpathyChatroomManager *mgr;
   gchar *file;
-  McAccount *account;
+  EmpathyAccount *account;
+  EmpathyAccountManager *account_manager;
   struct chatroom_t chatrooms[] = {
         { "name1", "room1", TRUE, TRUE },
         { "name2", "room2", FALSE, FALSE }};
   EmpathyChatroom *chatroom;
 
+  account_manager = empathy_account_manager_dup_singleton ();
   account = get_test_account ();
 
   copy_xml_file (CHATROOM_SAMPLE, CHATROOM_FILE);
@@ -261,8 +272,7 @@ START_TEST (test_empathy_chatroom_manager_change_favorite)
   file = get_user_xml_file (CHATROOM_FILE);
 
   /* change the chatrooms XML file to use the account we just created */
-  if (!change_account_name_in_file (account, file))
-    return;
+  fail_unless (change_account_name_in_file (account, file));
 
   mgr = empathy_chatroom_manager_dup_singleton (file);
 
@@ -302,6 +312,7 @@ START_TEST (test_empathy_chatroom_manager_change_favorite)
   g_object_unref (mgr);
   g_object_unref (chatroom);
   g_free (file);
+  g_object_unref (account_manager);
   g_object_unref (account);
 }
 END_TEST
@@ -310,12 +321,14 @@ START_TEST (test_empathy_chatroom_manager_change_chatroom)
 {
   EmpathyChatroomManager *mgr;
   gchar *file;
-  McAccount *account;
+  EmpathyAccount *account;
+  EmpathyAccountManager *account_manager;
   struct chatroom_t chatrooms[] = {
         { "name1", "room1", TRUE, TRUE },
         { "name2", "room2", FALSE, TRUE }};
   EmpathyChatroom *chatroom;
 
+  account_manager = empathy_account_manager_dup_singleton ();
   account = get_test_account ();
 
   copy_xml_file (CHATROOM_SAMPLE, "foo.xml");
@@ -323,8 +336,7 @@ START_TEST (test_empathy_chatroom_manager_change_chatroom)
   file = get_user_xml_file ("foo.xml");
 
   /* change the chatrooms XML file to use the account we just created */
-  if (!change_account_name_in_file (account, file))
-    return;
+  fail_unless (change_account_name_in_file (account, file));
 
   mgr = empathy_chatroom_manager_dup_singleton (file);
 
@@ -369,6 +381,7 @@ START_TEST (test_empathy_chatroom_manager_change_chatroom)
   g_object_unref (mgr);
   g_free (file);
   g_object_unref (account);
+  g_object_unref (account_manager);
 }
 END_TEST
 
index a4adf6ce1be62aa7f93c936bf89bce147df7e49f..f2110a8f86f6833d97f13ab6aefbfb4a3d31c0a7 100644 (file)
@@ -12,7 +12,7 @@
 static EmpathyChatroom *
 create_chatroom (void)
 {
-  McAccount *account;
+  EmpathyAccount *account;
   EmpathyChatroom *chatroom;
 
   account = get_test_account ();
index 65273f8c85ca4724cb02dbb60e491970abcf9107..c77cf9b75677888e9ac89540d9ad0e5126a020fa 100644 (file)
@@ -24,6 +24,8 @@
 #include <gconf/gconf.h>
 #include <gconf/gconf-client.h>
 
+#include <libempathy/empathy-account-manager.h>
+
 #include "check-helpers.h"
 #include "check-empathy-helpers.h"
 
@@ -63,25 +65,31 @@ copy_xml_file (const gchar *orig,
   g_free (buffer);
 }
 
-McAccount *
+EmpathyAccount *
 get_test_account (void)
 {
   McProfile *profile;
-  McAccount *account;
+  EmpathyAccountManager *account_manager;
+  EmpathyAccount *account;
   GList *accounts;
 
+  account_manager = empathy_account_manager_dup_singleton ();
   profile = mc_profile_lookup ("test");
   accounts = mc_accounts_list_by_profile (profile);
   if (g_list_length (accounts) == 0)
     {
       /* need to create a test account */
-      account = mc_account_create (profile);
+      account = empathy_account_manager_create (account_manager, profile);
     }
   else
     {
       /* reuse an existing test account */
-      account = accounts->data;
+      McAccount *mc_account;
+      mc_account = accounts->data;
+      account = empathy_account_manager_lookup (account_manager,
+        mc_account_get_unique_name (mc_account));
     }
+  g_object_unref (account_manager);
 
   g_object_unref (profile);
 
@@ -91,16 +99,17 @@ get_test_account (void)
 /* Not used for now as there is no API to remove completely gconf keys.
  * So we reuse existing accounts instead of creating new ones */
 void
-destroy_test_account (McAccount *account)
+destroy_test_account (EmpathyAccount *account)
 {
   GConfClient *client;
   gchar *path;
   GError *error = NULL;
   GSList *entries = NULL, *l;
+  EmpathyAccountManager *manager;
 
   client = gconf_client_get_default ();
   path = g_strdup_printf ("/apps/telepathy/mc/accounts/%s",
-      mc_account_get_unique_name (account));
+      empathy_account_get_unique_name (account));
 
   entries = gconf_client_all_entries (client, path, &error);
   if (error != NULL)
@@ -151,6 +160,8 @@ destroy_test_account (McAccount *account)
   g_object_unref (client);
   g_free (path);
 
-  mc_account_delete (account);
+  manager = empathy_account_manager_dup_singleton ();
+  empathy_account_manager_remove (manager, account);
   g_object_unref (account);
+  g_object_unref (manager);
 }
index 4d52c04e5872c9ac4990d25725ffa04d14a3ad8e..5544b80aa7f4ebe3d00939323393407a3920fe1c 100644 (file)
 #define __CHECK_EMPATHY_HELPERS_H__
 
 #include <glib.h>
-#include <libmissioncontrol/mc-account.h>
+#include <libempathy/empathy-account.h>
 
 gchar * get_xml_file (const gchar *filename);
 gchar * get_user_xml_file (const gchar *filename);
 void copy_xml_file (const gchar *orig, const gchar *dest);
-McAccount * get_test_account (void);
-void destroy_test_account (McAccount *account);
+EmpathyAccount * get_test_account (void);
+void destroy_test_account (EmpathyAccount *account);
 
 #endif /* #ifndef __CHECK_EMPATHY_HELPERS_H__ */
index 3e0783811b0b7b67b3fc26ff4dee276a692ac323..b71b3b65b93817f2373702bf5b0778fe5d7581b5 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <glib.h>
 #include <check.h>
-#include <libmissioncontrol/mc-account.h>
 
 void
 check_helpers_init (void);
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