aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac32
-rw-r--r--data/org.gnome.Empathy.gschema.xml.in5
-rw-r--r--libempathy-gtk/Makefile.am2
-rw-r--r--libempathy-gtk/empathy-account-widget.c4
-rw-r--r--libempathy-gtk/empathy-chat.c6
-rw-r--r--libempathy-gtk/empathy-groups-widget.c7
-rw-r--r--libempathy-gtk/empathy-individual-dialogs.c15
-rw-r--r--libempathy-gtk/empathy-individual-information-dialog.c13
-rw-r--r--libempathy-gtk/empathy-individual-linker.c70
-rw-r--r--libempathy-gtk/empathy-individual-linker.h2
-rw-r--r--libempathy-gtk/empathy-individual-menu.c93
-rw-r--r--libempathy-gtk/empathy-individual-store.c176
-rw-r--r--libempathy-gtk/empathy-individual-store.h8
-rw-r--r--libempathy-gtk/empathy-individual-view.c84
-rw-r--r--libempathy-gtk/empathy-individual-widget.c236
-rw-r--r--libempathy-gtk/empathy-linking-dialog.c14
-rw-r--r--libempathy-gtk/empathy-persona-store.c53
-rw-r--r--libempathy-gtk/empathy-theme-adium.c134
-rw-r--r--libempathy-gtk/empathy-theme-adium.h5
-rw-r--r--libempathy-gtk/empathy-theme-manager.c284
-rw-r--r--libempathy-gtk/empathy-ui-utils.c57
-rw-r--r--libempathy/Makefile.am2
-rw-r--r--libempathy/empathy-contact.c206
-rw-r--r--libempathy/empathy-gsettings.h1
-rw-r--r--libempathy/empathy-individual-manager.c119
-rw-r--r--libempathy/empathy-individual-manager.h2
-rw-r--r--libempathy/empathy-utils.c76
-rw-r--r--libempathy/empathy-utils.h2
-rw-r--r--po/eo.po952
-rw-r--r--po/gl.po494
-rw-r--r--po/he.po849
-rw-r--r--po/nb.po993
-rw-r--r--src/empathy-invite-participant-dialog.c187
-rw-r--r--src/empathy-main-window.c94
-rw-r--r--src/empathy-preferences.c175
-rw-r--r--src/empathy-preferences.ui63
36 files changed, 3291 insertions, 2224 deletions
diff --git a/configure.ac b/configure.ac
index dde9487c0..3e998de91 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,7 +31,7 @@ AC_COPYRIGHT([
# Minimal version required
# Hardp deps
-FOLKS_REQUIRED=0.4.0
+FOLKS_REQUIRED=0.5.1
GLIB_REQUIRED=2.28.0
GNUTLS_REQUIRED=2.8.5
GTK_REQUIRED=3.0.2
@@ -375,6 +375,35 @@ AC_SUBST(GEOCLUE_CFLAGS)
AC_SUBST(GEOCLUE_LIBS)
# -----------------------------------------------------------
+# location checks: geocode-glib
+# -----------------------------------------------------------
+AC_ARG_ENABLE(geocode,
+ AS_HELP_STRING([--enable-geocode=@<:@no/yes/auto@:>@],
+ [Enable geocode support]), ,
+ enable_geocode=auto)
+
+if test "x$enable_geocode" != "xno"; then
+ PKG_CHECK_MODULES(GEOCODE,
+ [
+ geocode-glib
+ ], have_geocode="yes", have_geocode="no")
+
+ if test "x$have_geoclue" = "xyes"; then
+ AC_DEFINE(HAVE_GEOCODE, 1, [Define if you have geocode])
+ fi
+else
+ have_geocode="no"
+fi
+
+if test "x$enable_geocode" = "xyes" -a "x$have_geocode" != "xyes"; then
+ AC_MSG_ERROR([Could not find geocode dependencies.])
+fi
+
+AM_CONDITIONAL(HAVE_GEOCODE, test "x$have_geocode" = "xyes")
+AC_SUBST(GEOCODE_CFLAGS)
+AC_SUBST(GEOCODE_LIBS)
+
+# -----------------------------------------------------------
# meego widgets support
# -----------------------------------------------------------
AC_ARG_ENABLE(meego,
@@ -525,6 +554,7 @@ Configure summary:
Spell checking (enchant)....: ${have_enchant}
Display maps (libchamplain).: ${have_libchamplain}
Location awareness (Geoclue): ${have_geoclue}
+ Geocode support (Geoclue): ${have_geocode}
Adium themes (Webkit).......: ${have_webkit}
Meego widgets ..............: ${have_meego}
Control center embedding....: ${have_control_center_embedding}
diff --git a/data/org.gnome.Empathy.gschema.xml.in b/data/org.gnome.Empathy.gschema.xml.in
index 799cc7294..50b3005fa 100644
--- a/data/org.gnome.Empathy.gschema.xml.in
+++ b/data/org.gnome.Empathy.gschema.xml.in
@@ -183,6 +183,11 @@ present them to the user immediately.</_description>
<_summary>Chat window theme</_summary>
<_description>The theme that is used to display the conversation in chat windows.</_description>
</key>
+ <key name="theme-variant" type="s">
+ <default>''</default>
+ <_summary>Chat window theme variant</_summary>
+ <_description>The theme variant that is used to display the conversation in chat windows.</_description>
+ </key>
<key name="adium-path" type="s">
<default>''</default>
<_summary>Path of the Adium theme to use</_summary>
diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am
index be1aeeea3..bb2565885 100644
--- a/libempathy-gtk/Makefile.am
+++ b/libempathy-gtk/Makefile.am
@@ -11,6 +11,7 @@ AM_CPPFLAGS = \
$(ENCHANT_CFLAGS) \
$(LIBCHAMPLAIN_CFLAGS) \
$(GEOCLUE_CFLAGS) \
+ $(GEOCODE_CFLAGS) \
$(MEEGO_CFLAGS) \
$(WEBKIT_CFLAGS) \
$(CHEESE_CFLAGS) \
@@ -165,6 +166,7 @@ libempathy_gtk_la_LIBADD = \
$(ENCHANT_LIBS) \
$(LIBCHAMPLAIN_LIBS) \
$(GEOCLUE_LIBS) \
+ $(GEOCODE_LIBS) \
$(GCR_LIBS) \
$(MEEGO_LIBS) \
$(WEBKIT_LIBS) \
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 7017efa06..0fe6a6bcc 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -2098,8 +2098,8 @@ do_constructed (GObject *obj)
/* The password might not have been retrieved from the
* keyring yet. We should update the remember password
* toggle button and the password entry when/if it is. */
- g_signal_connect (priv->settings, "password-retrieved",
- G_CALLBACK (account_settings_password_retrieved_cb), self);
+ tp_g_signal_connect_object (priv->settings, "password-retrieved",
+ G_CALLBACK (account_settings_password_retrieved_cb), self, 0);
}
g_signal_connect (priv->remember_password_widget, "toggled",
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index 533b1e751..3c391c864 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -2248,7 +2248,7 @@ chat_input_populate_popup_cb (GtkTextView *view,
static gboolean
-chat_log_filter (TplEvent *log,
+chat_log_filter (TplEvent *event,
gpointer user_data)
{
EmpathyChat *chat = user_data;
@@ -2256,11 +2256,11 @@ chat_log_filter (TplEvent *log,
EmpathyChatPriv *priv = GET_PRIV (chat);
const GList *pending;
- g_return_val_if_fail (TPL_IS_EVENT (log), FALSE);
+ g_return_val_if_fail (TPL_IS_EVENT (event), FALSE);
g_return_val_if_fail (EMPATHY_IS_CHAT (chat), FALSE);
pending = empathy_tp_chat_get_pending_messages (priv->tp_chat);
- message = empathy_message_from_tpl_log_event (log);
+ message = empathy_message_from_tpl_log_event (event);
for (; pending; pending = g_list_next (pending)) {
if (empathy_message_equal (message, pending->data)) {
diff --git a/libempathy-gtk/empathy-groups-widget.c b/libempathy-gtk/empathy-groups-widget.c
index 68e7efd09..33e4d8d5a 100644
--- a/libempathy-gtk/empathy-groups-widget.c
+++ b/libempathy-gtk/empathy-groups-widget.c
@@ -152,7 +152,7 @@ populate_data (EmpathyGroupsWidget *self)
EmpathyGroupsWidgetPriv *priv = GET_PRIV (self);
EmpathyContactManager *manager;
GtkTreeIter iter;
- GHashTable *my_groups;
+ GeeSet *member_groups;
GList *all_groups, *l;
/* Remove the old groups */
@@ -166,14 +166,15 @@ populate_data (EmpathyGroupsWidget *self)
g_object_unref (manager);
/* Get the list of groups that this #FolksGroupDetails is currently in */
- my_groups = folks_group_details_get_groups (priv->group_details);
+ member_groups = folks_group_details_get_groups (priv->group_details);
for (l = all_groups; l != NULL; l = l->next)
{
const gchar *group_str = l->data;
gboolean enabled;
- enabled = GPOINTER_TO_UINT (g_hash_table_lookup (my_groups, group_str));
+ enabled = gee_collection_contains (GEE_COLLECTION (member_groups),
+ group_str);
gtk_list_store_append (priv->group_store, &iter);
gtk_list_store_set (priv->group_store, &iter,
diff --git a/libempathy-gtk/empathy-individual-dialogs.c b/libempathy-gtk/empathy-individual-dialogs.c
index 2e88a742b..a19787662 100644
--- a/libempathy-gtk/empathy-individual-dialogs.c
+++ b/libempathy-gtk/empathy-individual-dialogs.c
@@ -186,7 +186,8 @@ empathy_block_individual_dialog_show (GtkWindow *parent,
empathy_contact_manager_dup_singleton ();
GtkWidget *dialog;
GtkWidget *abusive_check = NULL;
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
GString *text = g_string_new ("");
GString *blocked_str = g_string_new ("");
GString *notblocked_str = g_string_new ("");
@@ -208,17 +209,17 @@ empathy_block_individual_dialog_show (GtkWindow *parent,
/* build a list of personas that support blocking */
personas = folks_individual_get_personas (individual);
-
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
TpContact *contact;
EmpathyContactListFlags flags;
GString *s;
char *str;
if (!TPF_IS_PERSONA (persona))
- continue;
+ goto while_finish;
contact = tpf_persona_get_contact (persona);
flags = empathy_contact_manager_get_flags_for_connection (
@@ -241,7 +242,11 @@ empathy_block_individual_dialog_show (GtkWindow *parent,
str = contact_pretty_name (contact);
g_string_append_printf (s, "\n " BULLET_POINT " %s", str);
g_free (str);
+
+while_finish:
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
g_string_append_printf (text,
_("Are you sure you want to block '%s' from contacting you again?"),
diff --git a/libempathy-gtk/empathy-individual-information-dialog.c b/libempathy-gtk/empathy-individual-information-dialog.c
index e14293d45..42bfb2053 100644
--- a/libempathy-gtk/empathy-individual-information-dialog.c
+++ b/libempathy-gtk/empathy-individual-information-dialog.c
@@ -129,19 +129,26 @@ static void
set_label_visibility (EmpathyIndividualInformationDialog *dialog)
{
EmpathyIndividualInformationDialogPriv *priv = GET_PRIV (dialog);
- GList *personas, *l;
guint num_personas = 0;
/* Count how many Telepathy personas we have, to see whether we can
* unlink */
if (priv->individual != NULL)
{
+ GeeSet *personas;
+ GeeIterator *iter;
+
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
+ FolksPersona *persona = gee_iterator_get (iter);
+ if (empathy_folks_persona_is_interesting (persona))
num_personas++;
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
}
/* Only make the label visible if we have enough personas */
diff --git a/libempathy-gtk/empathy-individual-linker.c b/libempathy-gtk/empathy-individual-linker.c
index a291a6dee..3a1551a70 100644
--- a/libempathy-gtk/empathy-individual-linker.c
+++ b/libempathy-gtk/empathy-individual-linker.c
@@ -141,21 +141,34 @@ link_individual (EmpathyIndividualLinker *self,
FolksIndividual *individual)
{
EmpathyIndividualLinkerPriv *priv = GET_PRIV (self);
- GList *new_persona_list;
+ GeeSet *old_personas, *new_personas;
+ GeeHashSet *final_personas;
+ gboolean personas_changed;
/* Add the individual to the link */
g_hash_table_insert (priv->changed_individuals, individual,
GUINT_TO_POINTER (TRUE));
- /* Add personas which are in @individual to priv->new_individual, appending
- * them to the list of personas.
- * This is rather slow. */
- new_persona_list = g_list_copy (folks_individual_get_personas (
- priv->new_individual));
- new_persona_list = g_list_concat (new_persona_list,
- g_list_copy (folks_individual_get_personas (individual)));
- folks_individual_set_personas (priv->new_individual, new_persona_list);
- g_list_free (new_persona_list);
+ /* Add personas which are in @individual to priv->new_individual, adding them
+ * to the set of personas. */
+ old_personas = folks_individual_get_personas (individual);
+ new_personas = folks_individual_get_personas (priv->new_individual);
+ final_personas = gee_hash_set_new (FOLKS_TYPE_PERSONA, g_object_ref,
+ g_object_unref, g_direct_hash, g_direct_equal);
+ gee_collection_add_all (GEE_COLLECTION (final_personas),
+ GEE_COLLECTION (old_personas));
+ personas_changed = gee_collection_add_all (GEE_COLLECTION (final_personas),
+ GEE_COLLECTION (new_personas));
+
+ /* avoid updating all values in the Individual if the set of personas doesn't
+ * actually change */
+ if (personas_changed)
+ {
+ folks_individual_set_personas (priv->new_individual,
+ GEE_SET (final_personas));
+ }
+
+ g_clear_object (&final_personas);
/* Update the toggle renderers, so that if this Individual is listed in
* another group in the EmpathyIndividualView, the toggle button for that
@@ -170,28 +183,31 @@ unlink_individual (EmpathyIndividualLinker *self,
FolksIndividual *individual)
{
EmpathyIndividualLinkerPriv *priv = GET_PRIV (self);
- GList *new_persona_list, *old_persona_list, *removing_personas, *l;
+ GeeSet *removed_personas, *old_personas;
+ GeeHashSet *final_personas;
+ gboolean personas_changed;
/* Remove the individual from the link */
g_hash_table_remove (priv->changed_individuals, individual);
- /* Remove personas which are in @individual from priv->new_individual.
- * This is rather slow. */
- old_persona_list = folks_individual_get_personas (priv->new_individual);
- removing_personas = folks_individual_get_personas (individual);
- new_persona_list = NULL;
+ /* Remove personas which are in @individual from priv->new_individual. */
+ old_personas = folks_individual_get_personas (priv->new_individual);
+ removed_personas = folks_individual_get_personas (individual);
- for (l = old_persona_list; l != NULL; l = l->next)
- {
- GList *removing = g_list_find (removing_personas, l->data);
+ final_personas = gee_hash_set_new (FOLKS_TYPE_PERSONA, g_object_ref,
+ g_object_unref, g_direct_hash, g_direct_equal);
+ gee_collection_add_all (GEE_COLLECTION (final_personas),
+ GEE_COLLECTION (old_personas));
+ personas_changed = gee_collection_remove_all (GEE_COLLECTION (final_personas),
+ GEE_COLLECTION (removed_personas));
- if (removing == NULL)
- new_persona_list = g_list_prepend (new_persona_list, l->data);
+ if (personas_changed)
+ {
+ folks_individual_set_personas (priv->new_individual,
+ GEE_SET (final_personas));
}
- new_persona_list = g_list_reverse (new_persona_list);
- folks_individual_set_personas (priv->new_individual, new_persona_list);
- g_list_free (new_persona_list);
+ g_clear_object (&final_personas);
/* Update the toggle renderers, so that if this Individual is listed in
* another group in the EmpathyIndividualView, the toggle button for that
@@ -732,14 +748,14 @@ empathy_individual_linker_set_start_individual (EmpathyIndividualLinker *self,
*
* The return value is guaranteed to contain at least one element.
*
- * Return value: (transfer none) (element-type Folks.Persona): a list of
+ * Return value: (transfer none) (element-type Folks.Persona): a set of
* #FolksPersona<!-- -->s to link together
*/
-GList *
+GeeSet *
empathy_individual_linker_get_linked_personas (EmpathyIndividualLinker *self)
{
EmpathyIndividualLinkerPriv *priv;
- GList *personas;
+ GeeSet *personas;
g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_LINKER (self), NULL);
diff --git a/libempathy-gtk/empathy-individual-linker.h b/libempathy-gtk/empathy-individual-linker.h
index 9d122dc51..dcf75189b 100644
--- a/libempathy-gtk/empathy-individual-linker.h
+++ b/libempathy-gtk/empathy-individual-linker.h
@@ -62,7 +62,7 @@ void empathy_individual_linker_set_start_individual (
EmpathyIndividualLinker *self,
FolksIndividual *individual);
-GList * empathy_individual_linker_get_linked_personas (
+GeeSet * empathy_individual_linker_get_linked_personas (
EmpathyIndividualLinker *self);
gboolean empathy_individual_linker_get_has_changed (
diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c
index 4a0b45cab..8a2654b8f 100644
--- a/libempathy-gtk/empathy-individual-menu.c
+++ b/libempathy-gtk/empathy-individual-menu.c
@@ -74,23 +74,28 @@ individual_menu_add_personas (GtkMenuShell *menu,
EmpathyIndividualFeatureFlags features)
{
GtkWidget *item;
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
guint persona_count = 0;
+ gboolean c;
g_return_if_fail (GTK_IS_MENU (menu));
g_return_if_fail (FOLKS_IS_INDIVIDUAL (individual));
g_return_if_fail (empathy_folks_individual_contains_contact (individual));
personas = folks_individual_get_personas (individual);
+ /* we'll re-use this iterator throughout */
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
/* Make sure we've got enough valid entries for these menu items to add
* functionality */
- for (l = personas; l != NULL; l = l->next)
+ while (gee_iterator_next (iter))
{
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
+ FolksPersona *persona = gee_iterator_get (iter);
+ if (empathy_folks_persona_is_interesting (persona))
+ persona_count++;
- persona_count++;
+ g_clear_object (&persona);
}
/* return early if these entries would add nothing beyond the "quick" items */
@@ -103,21 +108,21 @@ individual_menu_add_personas (GtkMenuShell *menu,
gtk_widget_show (item);
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ for (c = gee_iterator_first (iter); c; c = gee_iterator_next (iter))
{
GtkWidget *image;
GtkWidget *contact_item;
GtkWidget *contact_submenu;
TpContact *tp_contact;
EmpathyContact *contact;
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
gchar *label;
FolksPersonaStore *store;
const gchar *account;
GtkWidget *action;
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
+ if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona)))
+ goto while_finish;
tp_contact = tpf_persona_get_contact (persona);
contact = empathy_contact_dup_from_tp_contact (tp_contact);
@@ -199,7 +204,12 @@ individual_menu_add_personas (GtkMenuShell *menu,
g_free (label);
g_object_unref (contact);
+
+while_finish:
+ g_clear_object (&persona);
}
+
+ g_clear_object (&iter);
}
static void
@@ -981,7 +991,6 @@ room_sub_menu_activate_cb (GtkWidget *item,
EmpathyTpChat *chat;
EmpathyChatroomManager *mgr;
EmpathyContact *contact = NULL;
- GList *personas, *l;
chat = empathy_chatroom_get_tp_chat (data->chatroom);
if (chat == NULL)
@@ -996,30 +1005,37 @@ room_sub_menu_activate_cb (GtkWidget *item,
contact = g_object_ref (data->contact);
else
{
+ GeeSet *personas;
+ GeeIterator *iter;
+
/* find the first of this Individual's contacts who can join this room */
personas = folks_individual_get_personas (data->individual);
- for (l = personas; l != NULL && contact == NULL; l = g_list_next (l))
+
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter) && (contact == NULL))
{
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
TpContact *tp_contact;
GList *rooms;
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
-
- tp_contact = tpf_persona_get_contact (persona);
- contact = empathy_contact_dup_from_tp_contact (tp_contact);
+ if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona)))
+ {
+ tp_contact = tpf_persona_get_contact (persona);
+ contact = empathy_contact_dup_from_tp_contact (tp_contact);
- rooms = empathy_chatroom_manager_get_chatrooms (mgr,
- empathy_contact_get_account (contact));
+ rooms = empathy_chatroom_manager_get_chatrooms (mgr,
+ empathy_contact_get_account (contact));
- if (g_list_find (rooms, data->chatroom) == NULL)
- tp_clear_object (&contact);
+ if (g_list_find (rooms, data->chatroom) == NULL)
+ g_clear_object (&contact);
- /* if contact != NULL here, we've found our match */
+ /* if contact != NULL here, we've found our match */
- g_list_free (rooms);
+ g_list_free (rooms);
+ }
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
}
g_object_unref (mgr);
@@ -1065,7 +1081,6 @@ empathy_individual_invite_menu_item_new (FolksIndividual *individual,
GtkWidget *image;
GtkWidget *room_item;
EmpathyChatroomManager *mgr;
- GList *personas;
GList *rooms = NULL;
GList *names = NULL;
GList *l;
@@ -1095,27 +1110,33 @@ empathy_individual_invite_menu_item_new (FolksIndividual *individual,
}
else
{
- /* collect the rooms from amongst all accounts for this Individual */
+ GeeSet *personas;
+ GeeIterator *iter;
+
+ /* find the first of this Individual's contacts who can join this room */
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = g_list_next (l))
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
GList *rooms_cur;
TpContact *tp_contact;
EmpathyContact *contact_cur;
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
-
- tp_contact = tpf_persona_get_contact (persona);
- contact_cur = empathy_contact_dup_from_tp_contact (tp_contact);
+ if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona)))
+ {
+ tp_contact = tpf_persona_get_contact (persona);
+ contact_cur = empathy_contact_dup_from_tp_contact (tp_contact);
- rooms_cur = empathy_chatroom_manager_get_chatrooms (mgr,
- empathy_contact_get_account (contact_cur));
- rooms = g_list_concat (rooms, rooms_cur);
+ rooms_cur = empathy_chatroom_manager_get_chatrooms (mgr,
+ empathy_contact_get_account (contact_cur));
+ rooms = g_list_concat (rooms, rooms_cur);
- g_object_unref (contact_cur);
+ g_object_unref (contact_cur);
+ }
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
}
/* alphabetize the rooms */
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index b550245dc..e4e644424 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -123,21 +123,24 @@ individual_can_audio_video_call (FolksIndividual *individual,
gboolean *can_audio_call,
gboolean *can_video_call)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
gboolean can_audio = FALSE, can_video = FALSE;
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
+ FolksPersona *persona = gee_iterator_get (iter);
TpContact *tp_contact;
EmpathyContact *contact;
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
+ if (!empathy_folks_persona_is_interesting (persona))
+ goto while_finish;
- tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data));
+ tp_contact = tpf_persona_get_contact (TPF_PERSONA (persona));
contact = empathy_contact_dup_from_tp_contact (tp_contact);
- empathy_contact_set_persona (contact, FOLKS_PERSONA (l->data));
+ empathy_contact_set_persona (contact, persona);
can_audio = can_audio || empathy_contact_get_capabilities (contact) &
EMPATHY_CAPABILITIES_AUDIO;
@@ -145,10 +148,13 @@ individual_can_audio_video_call (FolksIndividual *individual,
EMPATHY_CAPABILITIES_VIDEO;
g_object_unref (contact);
+while_finish:
+ g_clear_object (&persona);
if (can_audio && can_video)
break;
}
+ g_clear_object (&iter);
*can_audio_call = can_audio;
*can_video_call = can_video;
@@ -157,20 +163,23 @@ individual_can_audio_video_call (FolksIndividual *individual,
static const gchar * const *
individual_get_client_types (FolksIndividual *individual)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
const gchar * const *types = NULL;
FolksPresenceType presence_type = FOLKS_PRESENCE_TYPE_UNSET;
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
FolksPresenceDetails *presence;
+ FolksPersona *persona = gee_iterator_get (iter);
- /* We only want personas which implement FolksPresenceDetails */
- if (!FOLKS_IS_PRESENCE_DETAILS (l->data))
- continue;
+ /* We only want personas which have presence and a TpContact */
+ if (!empathy_folks_persona_is_interesting (persona))
+ goto while_finish;
- presence = FOLKS_PRESENCE_DETAILS (l->data);
+ presence = FOLKS_PRESENCE_DETAILS (persona);
if (folks_presence_details_typecmp (
folks_presence_details_get_presence_type (presence),
@@ -180,10 +189,14 @@ individual_get_client_types (FolksIndividual *individual)
presence_type = folks_presence_details_get_presence_type (presence);
- tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data));
+ tp_contact = tpf_persona_get_contact (TPF_PERSONA (persona));
types = tp_contact_get_client_types (tp_contact);
}
+
+while_finish:
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
return types;
}
@@ -405,11 +418,7 @@ individual_store_add_individual (EmpathyIndividualStore *self,
{
EmpathyIndividualStorePriv *priv;
GtkTreeIter iter;
- GHashTable *group_set = NULL;
- GList *groups = NULL, *l;
- EmpathyContact *contact;
- TpConnection *connection;
- gchar *protocol_name;
+ GeeIterator *group_iter = NULL;
priv = GET_PRIV (self);
@@ -419,22 +428,32 @@ individual_store_add_individual (EmpathyIndividualStore *self,
if (priv->show_groups)
{
+ GeeSet *group_set = NULL;
+
group_set = folks_group_details_get_groups (
FOLKS_GROUP_DETAILS (individual));
- groups = g_hash_table_get_keys (group_set);
- }
- contact = empathy_contact_dup_from_folks_individual (individual);
- connection = empathy_contact_get_connection (contact);
-
- tp_connection_parse_object_path (connection, &protocol_name, NULL);
+ if (gee_collection_get_size (GEE_COLLECTION (group_set)) > 0)
+ group_iter = gee_iterable_iterator (GEE_ITERABLE (group_set));
+ }
- if (groups == NULL)
+ /* fall-back groups, in case there are no named groups */
+ if (group_iter == NULL)
{
GtkTreeIter iter_group, *parent;
+ EmpathyContact *contact;
+ TpConnection *connection;
+ gchar *protocol_name = NULL;
parent = &iter_group;
+ contact = empathy_contact_dup_from_folks_individual (individual);
+ if (contact != NULL)
+ {
+ connection = empathy_contact_get_connection (contact);
+ tp_connection_parse_object_path (connection, &protocol_name, NULL);
+ }
+
if (!priv->show_groups)
parent = NULL;
else if (!tp_strdiff (protocol_name, "local-xmpp"))
@@ -453,22 +472,26 @@ individual_store_add_individual (EmpathyIndividualStore *self,
add_individual_to_store (GTK_TREE_STORE (self), &iter, parent,
individual);
- }
- g_free (protocol_name);
+ g_free (protocol_name);
+ g_clear_object (&contact);
+ }
/* Else add to each group. */
- for (l = groups; l; l = l->next)
+ while (group_iter != NULL && gee_iterator_next (group_iter))
{
+ gchar *group_name = gee_iterator_get (group_iter);
GtkTreeIter iter_group;
- individual_store_get_group (self, l->data, &iter_group, NULL, NULL,
+ individual_store_get_group (self, group_name, &iter_group, NULL, NULL,
FALSE);
add_individual_to_store (GTK_TREE_STORE (self), &iter, &iter_group,
individual);
+
+ g_free (group_name);
}
- g_list_free (groups);
+ g_clear_object (&group_iter);
if (priv->show_groups &&
folks_favourite_details_get_is_favourite (
@@ -485,8 +508,6 @@ individual_store_add_individual (EmpathyIndividualStore *self,
}
individual_store_contact_update (self, individual);
-
- tp_clear_object (&contact);
}
static void
@@ -858,62 +879,74 @@ individual_store_contact_updated_cb (EmpathyContact *contact,
static void
individual_personas_changed_cb (FolksIndividual *individual,
- GList *added,
- GList *removed,
+ GeeSet *added,
+ GeeSet *removed,
EmpathyIndividualStore *self)
{
- GList *l;
+ GeeIterator *iter;
DEBUG ("Individual '%s' personas-changed.",
folks_individual_get_id (individual));
+ iter = gee_iterable_iterator (GEE_ITERABLE (removed));
/* FIXME: libfolks hasn't grown capabilities support yet, so we have to go
* through the EmpathyContacts for them. */
- for (l = removed; l != NULL; l = l->next)
+ while (gee_iterator_next (iter))
{
+ TpfPersona *persona = gee_iterator_get (iter);
TpContact *tp_contact;
EmpathyContact *contact;
- if (!TPF_IS_PERSONA (l->data))
- continue;
+ if (TPF_IS_PERSONA (persona))
+ {
+ tp_contact = tpf_persona_get_contact (persona);
+ contact = empathy_contact_dup_from_tp_contact (tp_contact);
+ empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
- tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data));
- contact = empathy_contact_dup_from_tp_contact (tp_contact);
- empathy_contact_set_persona (contact, FOLKS_PERSONA (l->data));
+ g_object_set_data (G_OBJECT (contact), "individual", NULL);
+ g_signal_handlers_disconnect_by_func (contact,
+ (GCallback) individual_store_contact_updated_cb, self);
- g_object_set_data (G_OBJECT (contact), "individual", NULL);
- g_signal_handlers_disconnect_by_func (contact,
- (GCallback) individual_store_contact_updated_cb, self);
+ g_object_unref (contact);
+ }
- g_object_unref (contact);
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
- for (l = added; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (added));
+ while (gee_iterator_next (iter))
{
+ TpfPersona *persona = gee_iterator_get (iter);
TpContact *tp_contact;
EmpathyContact *contact;
- if (!TPF_IS_PERSONA (l->data))
- continue;
+ if (TPF_IS_PERSONA (persona))
+ {
+ tp_contact = tpf_persona_get_contact (persona);
+ contact = empathy_contact_dup_from_tp_contact (tp_contact);
+ empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
- tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data));
- contact = empathy_contact_dup_from_tp_contact (tp_contact);
- empathy_contact_set_persona (contact, FOLKS_PERSONA (l->data));
+ g_object_set_data (G_OBJECT (contact), "individual", individual);
+ g_signal_connect (contact, "notify::capabilities",
+ (GCallback) individual_store_contact_updated_cb, self);
+ g_signal_connect (contact, "notify::client-types",
+ (GCallback) individual_store_contact_updated_cb, self);
- g_object_set_data (G_OBJECT (contact), "individual", individual);
- g_signal_connect (contact, "notify::capabilities",
- (GCallback) individual_store_contact_updated_cb, self);
- g_signal_connect (contact, "notify::client-types",
- (GCallback) individual_store_contact_updated_cb, self);
+ g_object_unref (contact);
+ }
- g_object_unref (contact);
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
}
-static void
+void
individual_store_add_individual_and_connect (EmpathyIndividualStore *self,
FolksIndividual *individual)
{
+ GeeSet *empty_set = gee_set_empty (G_TYPE_NONE, NULL, NULL);
+
individual_store_add_individual (self, individual);
g_signal_connect (individual, "notify::avatar",
@@ -927,16 +960,22 @@ individual_store_add_individual_and_connect (EmpathyIndividualStore *self,
g_signal_connect (individual, "personas-changed",
(GCallback) individual_personas_changed_cb, self);
+ /* provide an empty set so the callback can assume non-NULL sets */
individual_personas_changed_cb (individual,
- folks_individual_get_personas (individual), NULL, self);
+ folks_individual_get_personas (individual), empty_set, self);
+ g_clear_object (&empty_set);
}
static void
individual_store_disconnect_individual (EmpathyIndividualStore *self,
FolksIndividual *individual)
{
- individual_personas_changed_cb (individual, NULL,
+ GeeSet *empty_set = gee_set_empty (G_TYPE_NONE, NULL, NULL);
+
+ /* provide an empty set so the callback can assume non-NULL sets */
+ individual_personas_changed_cb (individual, empty_set,
folks_individual_get_personas (individual), self);
+ g_clear_object (&empty_set);
g_signal_handlers_disconnect_by_func (individual,
(GCallback) individual_store_individual_updated_cb, self);
@@ -944,7 +983,7 @@ individual_store_disconnect_individual (EmpathyIndividualStore *self,
(GCallback) individual_personas_changed_cb, self);
}
-static void
+void
individual_store_remove_individual_and_disconnect (
EmpathyIndividualStore *self,
FolksIndividual *individual)
@@ -1533,6 +1572,7 @@ individual_store_setup (EmpathyIndividualStore *self)
G_TYPE_BOOLEAN, /* Can make video calls */
G_TYPE_BOOLEAN, /* Is a fake group */
G_TYPE_STRV, /* Client types */
+ G_TYPE_UINT, /* Event count */
};
priv = GET_PRIV (self);
@@ -1925,22 +1965,28 @@ individual_store_get_individual_status_icon_with_icon_name (
EmpathyIndividualStorePriv *priv;
const gchar *protocol_name = NULL;
gchar *icon_name = NULL;
- GList *personas, *l;
- guint contact_count;
+ GeeSet *personas;
+ GeeIterator *iter;
+ guint contact_count = 0;
EmpathyContact *contact = NULL;
gboolean show_protocols_here;
priv = GET_PRIV (self);
personas = folks_individual_get_personas (individual);
- for (l = personas, contact_count = 0; l; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
+ FolksPersona *persona = gee_iterator_get (iter);
+ if (empathy_folks_persona_is_interesting (persona))
contact_count++;
+ g_clear_object (&persona);
+
if (contact_count > 1)
break;
}
+ g_clear_object (&iter);
show_protocols_here = (priv->show_protocols && (contact_count == 1));
if (show_protocols_here)
diff --git a/libempathy-gtk/empathy-individual-store.h b/libempathy-gtk/empathy-individual-store.h
index 246c73b91..418761ead 100644
--- a/libempathy-gtk/empathy-individual-store.h
+++ b/libempathy-gtk/empathy-individual-store.h
@@ -65,6 +65,7 @@ typedef enum
EMPATHY_INDIVIDUAL_STORE_COL_CAN_VIDEO_CALL,
EMPATHY_INDIVIDUAL_STORE_COL_IS_FAKE_GROUP,
EMPATHY_INDIVIDUAL_STORE_COL_CLIENT_TYPES,
+ EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT,
EMPATHY_INDIVIDUAL_STORE_COL_COUNT,
} EmpathyIndividualStoreCol;
@@ -137,5 +138,12 @@ GdkPixbuf *empathy_individual_store_get_individual_status_icon (
EmpathyIndividualStore *store,
FolksIndividual *individual);
+void individual_store_add_individual_and_connect (EmpathyIndividualStore *self,
+ FolksIndividual *individual);
+
+void individual_store_remove_individual_and_disconnect (
+ EmpathyIndividualStore *self,
+ FolksIndividual *individual);
+
G_END_DECLS
#endif /* __EMPATHY_INDIVIDUAL_STORE_H__ */
diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c
index c467e9091..0fb24430c 100644
--- a/libempathy-gtk/empathy-individual-view.c
+++ b/libempathy-gtk/empathy-individual-view.c
@@ -417,6 +417,7 @@ individual_view_persona_drag_received (GtkWidget *self,
FolksPersona *persona = NULL;
const gchar *persona_uid;
GList *individuals, *l;
+ GeeIterator *iter = NULL;
gboolean retval = FALSE;
persona_uid = (const gchar *) gtk_selection_data_get_data (selection);
@@ -428,23 +429,28 @@ individual_view_persona_drag_received (GtkWidget *self,
for (l = individuals; l != NULL; l = l->next)
{
- GList *personas, *p;
+ GeeSet *personas;
personas = folks_individual_get_personas (FOLKS_INDIVIDUAL (l->data));
-
- for (p = personas; p != NULL; p = p->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- if (!tp_strdiff (folks_persona_get_uid (FOLKS_PERSONA (p->data)),
- persona_uid))
+ FolksPersona *persona_cur = gee_iterator_get (iter);
+
+ if (!tp_strdiff (folks_persona_get_uid (persona), persona_uid))
{
- persona = g_object_ref (p->data);
+ /* takes ownership of the ref */
+ persona = persona_cur;
individual = g_object_ref (l->data);
goto got_persona;
}
+ g_clear_object (&persona_cur);
}
+ g_clear_object (&iter);
}
got_persona:
+ g_clear_object (&iter);
g_list_free (individuals);
if (persona == NULL || individual == NULL)
@@ -1688,13 +1694,19 @@ individual_view_is_visible_individual (EmpathyIndividualView *self,
gboolean is_online,
gboolean is_searching,
const gchar *group,
- gboolean is_fake_group)
+ gboolean is_fake_group,
+ guint event_count)
{
EmpathyIndividualViewPriv *priv = GET_PRIV (self);
EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget);
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
gboolean is_favorite, contains_interesting_persona = FALSE;
+ /* Always display individuals having pending events */
+ if (event_count > 0)
+ return TRUE;
+
/* We're only giving the visibility wrt filtering here, not things like
* presence. */
if (priv->show_untrusted == FALSE &&
@@ -1705,14 +1717,17 @@ individual_view_is_visible_individual (EmpathyIndividualView *self,
/* Hide all individuals which consist entirely of uninteresting personas */
personas = folks_individual_get_personas (individual);
- for (l = personas; l; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (!contains_interesting_persona && gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- {
- contains_interesting_persona = TRUE;
- break;
- }
+ FolksPersona *persona = gee_iterator_get (iter);
+
+ if (empathy_folks_persona_is_interesting (persona))
+ contains_interesting_persona = TRUE;
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
if (contains_interesting_persona == FALSE)
return FALSE;
@@ -1767,6 +1782,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
GtkTreeIter child_iter;
gboolean visible, is_online;
gboolean is_searching = TRUE;
+ guint event_count;
if (priv->custom_filter != NULL)
return priv->custom_filter (model, iter, priv->custom_filter_data);
@@ -1780,6 +1796,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
EMPATHY_INDIVIDUAL_STORE_COL_IS_SEPARATOR, &is_separator,
EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
+ EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &event_count,
-1);
if (individual != NULL)
@@ -1790,7 +1807,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
group = get_group (model, iter, &is_fake_group);
visible = individual_view_is_visible_individual (self, individual,
- is_online, is_searching, group, is_fake_group);
+ is_online, is_searching, group, is_fake_group, event_count);
g_object_unref (individual);
g_free (group);
@@ -1822,6 +1839,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
gtk_tree_model_get (model, &child_iter,
EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
+ EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &event_count,
-1);
if (individual == NULL)
@@ -1830,7 +1848,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
group = get_group (model, &child_iter, &is_fake_group);
visible = individual_view_is_visible_individual (self, individual,
- is_online, is_searching, group, is_fake_group);
+ is_online, is_searching, group, is_fake_group, event_count);
g_object_unref (individual);
g_free (group);
@@ -2438,7 +2456,8 @@ got_avatar (GObject *source_object,
EmpathyIndividualManager *manager;
gchar *text;
GtkWindow *parent;
- GList *l, *personas;
+ GeeSet *personas;
+ GeeIterator *iter;
guint persona_count = 0;
gboolean can_block;
GError *error = NULL;
@@ -2457,19 +2476,21 @@ got_avatar (GObject *source_object,
* so we still display the remove dialog. */
personas = folks_individual_get_personas (individual);
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
/* If we have more than one TpfPersona, display a different message
* ensuring the user knows that *all* of the meta-contacts' personas will
* be removed. */
- for (l = personas; l != NULL; l = l->next)
+ while (persona_count < 2 && gee_iterator_next (iter))
{
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
+ FolksPersona *persona = gee_iterator_get (iter);
- persona_count++;
- if (persona_count >= 2)
- break;
+ if (empathy_folks_persona_is_interesting (persona))
+ persona_count++;
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
if (persona_count < 2)
{
@@ -2561,7 +2582,8 @@ empathy_individual_view_get_individual_menu (EmpathyIndividualView *view)
GtkWidget *item;
GtkWidget *image;
gboolean can_remove = FALSE;
- GList *l;
+ GeeSet *personas;
+ GeeIterator *iter;
g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_VIEW (view), NULL);
@@ -2577,19 +2599,21 @@ empathy_individual_view_get_individual_menu (EmpathyIndividualView *view)
* remove. This will act as a best-effort option. If any Personas cannot be
* removed from the server, then this option will just be inactive upon
* subsequent menu openings */
- for (l = folks_individual_get_personas (individual); l != NULL; l = l->next)
+ personas = folks_individual_get_personas (individual);
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (!can_remove && gee_iterator_next (iter))
{
- FolksPersona *persona = FOLKS_PERSONA (l->data);
+ FolksPersona *persona = gee_iterator_get (iter);
FolksPersonaStore *store = folks_persona_get_store (persona);
FolksMaybeBool maybe_can_remove =
folks_persona_store_get_can_remove_personas (store);
if (maybe_can_remove == FOLKS_MAYBE_BOOL_TRUE)
- {
- can_remove = TRUE;
- break;
- }
+ can_remove = TRUE;
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
menu = empathy_individual_menu_new (individual, priv->individual_features);
diff --git a/libempathy-gtk/empathy-individual-widget.c b/libempathy-gtk/empathy-individual-widget.c
index dc45191a6..e5441748b 100644
--- a/libempathy-gtk/empathy-individual-widget.c
+++ b/libempathy-gtk/empathy-individual-widget.c
@@ -222,30 +222,37 @@ update_weak_contact (EmpathyIndividualWidget *self)
* details for every TpContact in the Individual and merge them
* all, but that requires vCard support in libfolks for it to
* not be hideously complex. (bgo#627399) */
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
FolksPresenceType presence_type = FOLKS_PRESENCE_TYPE_UNSET;
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- FolksPresenceDetails *presence;
+ FolksPersona *persona = gee_iterator_get (iter);
- /* We only want personas which implement FolksPresence */
- if (!FOLKS_IS_PRESENCE_DETAILS (l->data))
- continue;
-
- presence = FOLKS_PRESENCE_DETAILS (l->data);
-
- if (folks_presence_details_typecmp (
- folks_presence_details_get_presence_type (presence),
- presence_type) > 0 &&
- empathy_folks_persona_is_interesting (FOLKS_PERSONA (presence)))
+ /* We only want personas which have presence and a TpContact */
+ if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona)))
{
- presence_type = folks_presence_details_get_presence_type (
+ FolksPresenceDetails *presence;
+ FolksPresenceType presence_type_cur;
+
+ presence = FOLKS_PRESENCE_DETAILS (persona);
+ presence_type_cur = folks_presence_details_get_presence_type (
presence);
- tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data));
+
+ if (folks_presence_details_typecmp (
+ presence_type_cur, presence_type) > 0)
+ {
+ presence_type = presence_type_cur;
+ tp_contact = tpf_persona_get_contact (TPF_PERSONA (persona));
+ }
}
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
}
if (tp_contact != NULL)
@@ -565,7 +572,8 @@ location_update (EmpathyIndividualWidget *self)
int i;
const gchar *skey;
gboolean display_map = FALSE;
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
if (!(priv->flags & EMPATHY_INDIVIDUAL_WIDGET_SHOW_LOCATION) ||
priv->individual == NULL)
@@ -577,10 +585,12 @@ location_update (EmpathyIndividualWidget *self)
/* FIXME: For the moment, we just display the first location data we can
* find amongst the Individual's Personas. Once libfolks grows a location
* interface, we can use that. (bgo#627400) */
+
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (location == NULL && gee_iterator_next (iter))
{
- FolksPersona *persona = FOLKS_PERSONA (l->data);
+ FolksPersona *persona = gee_iterator_get (iter);
if (empathy_folks_persona_is_interesting (persona))
{
@@ -595,13 +605,16 @@ location_update (EmpathyIndividualWidget *self)
/* Try and get a location */
location = empathy_contact_get_location (contact);
- if (location != NULL && g_hash_table_size (location) > 0)
- break;
-
- location = NULL;
- tp_clear_object (&contact);
+ /* if location isn't fully valid, treat the contact as insufficient */
+ if (location != NULL && g_hash_table_size (location) <= 0)
+ {
+ location = NULL;
+ g_clear_object (&contact);
+ }
}
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
if (contact == NULL || location == NULL)
{
@@ -745,10 +758,12 @@ location_update (EmpathyIndividualWidget *self)
/* FIXME: For now, we have to do this manually. Once libfolks grows a
* location interface, we can use that. (bgo#627400) */
+
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- FolksPersona *persona = FOLKS_PERSONA (l->data);
+ FolksPersona *persona = gee_iterator_get (iter);
if (empathy_folks_persona_is_interesting (persona))
{
@@ -764,27 +779,18 @@ location_update (EmpathyIndividualWidget *self)
/* Try and get a location */
location = empathy_contact_get_location (contact);
if (location == NULL || g_hash_table_size (location) == 0)
- {
- g_object_unref (contact);
- continue;
- }
+ goto while_finish;
/* Get this persona's latitude and longitude */
value = g_hash_table_lookup (location, EMPATHY_LOCATION_LAT);
if (value == NULL)
- {
- g_object_unref (contact);
- continue;
- }
+ goto while_finish;
lat = g_value_get_double (value);
value = g_hash_table_lookup (location, EMPATHY_LOCATION_LON);
if (value == NULL)
- {
- g_object_unref (contact);
- continue;
- }
+ goto while_finish;
lon = g_value_get_double (value);
@@ -796,10 +802,13 @@ location_update (EmpathyIndividualWidget *self)
lat, lon);
champlain_marker_layer_add_marker (layer,
CHAMPLAIN_MARKER (marker));
-
- g_object_unref (contact);
}
+
+while_finish:
+ g_clear_object (&persona);
+ g_clear_object (&contact);
}
+ g_clear_object (&iter);
/* Zoom to show all of the markers */
champlain_view_ensure_layers_visible (priv->map_view, FALSE);
@@ -887,20 +896,25 @@ persona_dup_avatar (FolksPersona *persona)
static EmpathyAvatar *
individual_dup_avatar (FolksIndividual *individual)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
EmpathyAvatar *avatar = NULL;
/* FIXME: We just choose the first Persona which has an avatar, and save that.
* The avatar handling in EmpathyContact needs to be moved into libfolks as
* much as possible, and this code rewritten to use FolksHasAvatar.
* (bgo#627401) */
+
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (avatar == NULL && gee_iterator_next (iter))
{
- avatar = persona_dup_avatar (FOLKS_PERSONA (l->data));
- if (avatar != NULL)
- break;
+ FolksPersona *persona = gee_iterator_get (iter);
+ avatar = persona_dup_avatar (persona);
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
return avatar;
}
@@ -1060,14 +1074,17 @@ avatar_widget_button_press_event_cb (GtkWidget *widget,
static TpAccount *
individual_is_user (FolksIndividual *individual)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
+ TpAccount *retval = NULL;
/* FIXME: This should move into libfolks when libfolks grows a way of
* determining "self". (bgo#627402) */
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- FolksPersona *persona = FOLKS_PERSONA (l->data);
+ FolksPersona *persona = gee_iterator_get (iter);
if (TPF_IS_PERSONA (persona))
{
@@ -1081,16 +1098,15 @@ individual_is_user (FolksIndividual *individual)
/* Determine if the contact is the user */
if (empathy_contact_is_user (contact))
- {
- g_object_unref (contact);
- return g_object_ref (empathy_contact_get_account (contact));
- }
+ retval = g_object_ref (empathy_contact_get_account (contact));
g_object_unref (contact);
}
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
- return NULL;
+ return retval;
}
static void
@@ -1633,16 +1649,22 @@ individual_table_set_up (EmpathyIndividualWidget *self)
{
gchar *message;
GtkWidget *label;
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
guint num_personas = 0;
/* Meta-contacts message displaying how many Telepathy personas we have */
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
+ FolksPersona *persona = gee_iterator_get (iter);
+ if (empathy_folks_persona_is_interesting (persona))
num_personas++;
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
/* Translators: the plurality applies to both instances of the word
* "contact" */
@@ -1689,26 +1711,33 @@ individual_table_destroy (EmpathyIndividualWidget *self)
static void
personas_changed_cb (FolksIndividual *individual,
- GList *added,
- GList *removed,
+ GeeSet *added,
+ GeeSet *removed,
EmpathyIndividualWidget *self)
{
EmpathyIndividualWidgetPriv *priv = GET_PRIV (self);
- GList *personas, *l, *children;
+ GList *l, *children;
+ GeeSet *personas;
+ GeeIterator *iter;
gboolean show_personas, was_showing_personas, will_show_personas, is_last;
guint old_num_personas, new_num_personas = 0;
personas = folks_individual_get_personas (individual);
+ /* we'll re-use this iterator throughout */
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
/* Note that old_num_personas is the number of persona tables we were
* displaying, not the number of Personas which were in the Individual
* before. */
old_num_personas = g_hash_table_size (priv->persona_tables);
- for (l = personas; l != NULL; l = l->next)
+ while (gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
+ FolksPersona *persona = gee_iterator_get (iter);
+ if (empathy_folks_persona_is_interesting (persona))
new_num_personas++;
+
+ g_clear_object (&persona);
}
/*
@@ -1740,34 +1769,73 @@ personas_changed_cb (FolksIndividual *individual,
if (was_showing_personas && will_show_personas)
{
+ GeeIterator *iter_changed;
+
/* Remove outdated Personas */
- for (l = removed; l != NULL; l = l->next)
- remove_persona (self, FOLKS_PERSONA (l->data));
+ iter_changed = gee_iterable_iterator (GEE_ITERABLE (removed));
+ while (gee_iterator_next (iter_changed))
+ {
+ FolksPersona *persona = gee_iterator_get (iter_changed);
+ remove_persona (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter_changed);
/* Add new Personas */
- for (l = added; l != NULL; l = l->next)
- add_persona (self, FOLKS_PERSONA (l->data));
+ iter_changed = gee_iterable_iterator (GEE_ITERABLE (added));
+ while (gee_iterator_next (iter_changed))
+ {
+ FolksPersona *persona = gee_iterator_get (iter_changed);
+ add_persona (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter_changed);
}
else if (!was_showing_personas && will_show_personas)
{
+ gboolean c;
+
/* Remove the old Individual table */
individual_table_destroy (self);
/* Set up all the Persona tables instead */
- for (l = personas; l != NULL; l = l->next)
- add_persona (self, FOLKS_PERSONA (l->data));
+ for (c = gee_iterator_first (iter); c; c = gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ add_persona (self, persona);
+ g_clear_object (&persona);
+ }
}
else if (was_showing_personas && !will_show_personas)
{
+ gboolean c;
+
/* Remove all Personas */
- for (l = personas; l != NULL; l = l->next)
- remove_persona (self, FOLKS_PERSONA (l->data));
- for (l = removed; l != NULL; l = l->next)
- remove_persona (self, FOLKS_PERSONA (l->data));
+ for (c = gee_iterator_first (iter); c; c = gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ remove_persona (self, persona);
+ g_clear_object (&persona);
+ }
+
+ if (removed != NULL)
+ {
+ GeeIterator *iter_changed;
+
+ iter_changed = gee_iterable_iterator (GEE_ITERABLE (removed));
+ while (gee_iterator_next (iter_changed))
+ {
+ FolksPersona *persona = gee_iterator_get (iter_changed);
+ remove_persona (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter_changed);
+ }
/* Set up the Individual table instead */
individual_table_set_up (self);
}
+ g_clear_object (&iter);
/* Hide the last separator and show the others */
children = gtk_container_get_children (GTK_CONTAINER (priv->vbox_individual));
@@ -1800,7 +1868,8 @@ remove_individual (EmpathyIndividualWidget *self)
EmpathyIndividualWidgetPriv *priv = GET_PRIV (self);
if (priv->individual != NULL)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
g_signal_handlers_disconnect_by_func (priv->individual,
notify_alias_cb, self);
@@ -1820,8 +1889,14 @@ remove_individual (EmpathyIndividualWidget *self)
}
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
- remove_persona (self, FOLKS_PERSONA (l->data));
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ remove_persona (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter);
individual_table_destroy (self);
if (priv->contact != NULL)
@@ -1878,16 +1953,21 @@ individual_update (EmpathyIndividualWidget *self)
else
{
/* We need to update the details for every Persona in the Individual */
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
+ FolksPersona *persona = gee_iterator_get (iter);
+
+ if (empathy_folks_persona_is_interesting (persona))
+ update_persona (self, persona);
- update_persona (self, FOLKS_PERSONA (l->data));
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
gtk_widget_show (priv->vbox_individual);
}
diff --git a/libempathy-gtk/empathy-linking-dialog.c b/libempathy-gtk/empathy-linking-dialog.c
index 7e11b91cd..350bfdc22 100644
--- a/libempathy-gtk/empathy-linking-dialog.c
+++ b/libempathy-gtk/empathy-linking-dialog.c
@@ -159,7 +159,7 @@ linking_response_cb (EmpathyLinkingDialog *self,
if (response == GTK_RESPONSE_OK)
{
EmpathyIndividualManager *manager;
- GList *personas;
+ GeeSet *personas;
manager = empathy_individual_manager_dup_singleton ();
@@ -223,7 +223,8 @@ empathy_linking_dialog_show (FolksIndividual *individual,
GtkWindow *parent)
{
EmpathyLinkingDialogPriv *priv;
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
guint num_personas = 0;
/* Create the dialogue if it doesn't exist */
@@ -246,11 +247,16 @@ empathy_linking_dialog_show (FolksIndividual *individual,
/* Count how many Telepathy personas we have, to see whether we can
* unlink */
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
+ FolksPersona *persona = gee_iterator_get (iter);
+ if (empathy_folks_persona_is_interesting (persona))
num_personas++;
+
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
/* Only make the "Unlink" button sensitive if we have enough personas */
gtk_dialog_set_response_sensitive (GTK_DIALOG (linking_dialog),
diff --git a/libempathy-gtk/empathy-persona-store.c b/libempathy-gtk/empathy-persona-store.c
index 75827c572..a3877788b 100644
--- a/libempathy-gtk/empathy-persona-store.c
+++ b/libempathy-gtk/empathy-persona-store.c
@@ -526,11 +526,11 @@ update_persona (EmpathyPersonaStore *self,
static void
individual_personas_changed_cb (GObject *object,
- GList *added,
- GList *removed,
+ GeeSet *added,
+ GeeSet *removed,
EmpathyPersonaStore *self)
{
- GList *l;
+ GeeIterator *iter;
/* One of the personas' row references might hold the last reference to the
* PersonaStore, so we need to keep a reference ourselves so we don't get
@@ -538,12 +538,24 @@ individual_personas_changed_cb (GObject *object,
g_object_ref (self);
/* Remove the old personas. */
- for (l = removed; l != NULL; l = l->next)
- remove_persona_and_disconnect (self, FOLKS_PERSONA (l->data));
+ iter = gee_iterable_iterator (GEE_ITERABLE (removed));
+ while (gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ remove_persona_and_disconnect (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter);
/* Add each of the new personas to the tree model */
- for (l = added; l != NULL; l = l->next)
- add_persona_and_connect (self, FOLKS_PERSONA (l->data));
+ iter = gee_iterable_iterator (GEE_ITERABLE (added));
+ while (gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ add_persona_and_connect (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter);
g_object_unref (self);
}
@@ -995,15 +1007,22 @@ empathy_persona_store_set_individual (EmpathyPersonaStore *self,
/* Remove the old individual */
if (priv->individual != NULL)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
g_signal_handlers_disconnect_by_func (priv->individual,
(GCallback) individual_personas_changed_cb, self);
/* Disconnect from and remove all personas belonging to this individual */
personas = folks_individual_get_personas (priv->individual);
- for (l = personas; l != NULL; l = l->next)
- remove_persona_and_disconnect (self, FOLKS_PERSONA (l->data));
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ remove_persona_and_disconnect (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter);
g_object_unref (priv->individual);
}
@@ -1013,7 +1032,8 @@ empathy_persona_store_set_individual (EmpathyPersonaStore *self,
/* Add the new individual */
if (individual != NULL)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
g_object_ref (individual);
@@ -1021,9 +1041,16 @@ empathy_persona_store_set_individual (EmpathyPersonaStore *self,
(GCallback) individual_personas_changed_cb, self);
/* Add pre-existing Personas */
+
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
- add_persona_and_connect (self, FOLKS_PERSONA (l->data));
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
+ {
+ FolksPersona *persona = gee_iterator_get (iter);
+ add_persona_and_connect (self, persona);
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter);
}
g_object_notify (G_OBJECT (self), "individual");
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index b0bd09ab9..0370b9055 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -69,6 +69,8 @@ typedef struct {
gboolean has_focus;
gboolean has_unread_message;
gboolean allow_scrolling;
+ gchar *variant;
+ gboolean in_construction;
} EmpathyThemeAdiumPriv;
struct _EmpathyAdiumData {
@@ -104,10 +106,12 @@ struct _EmpathyAdiumData {
};
static void theme_adium_iface_init (EmpathyChatViewIface *iface);
+static gchar * adium_info_dup_path_for_variant (GHashTable *info, const gchar *variant);
enum {
PROP_0,
PROP_ADIUM_DATA,
+ PROP_VARIANT,
};
G_DEFINE_TYPE_WITH_CODE (EmpathyThemeAdium, empathy_theme_adium,
@@ -230,6 +234,27 @@ string_with_format (const gchar *format,
}
static void
+theme_adium_load_template (EmpathyThemeAdium *theme)
+{
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
+ gchar *basedir_uri;
+ gchar *variant_path;
+ gchar *template;
+
+ priv->pages_loading++;
+ basedir_uri = g_strconcat ("file://", priv->data->basedir, NULL);
+ variant_path = adium_info_dup_path_for_variant (priv->data->info,
+ priv->variant);
+ template = string_with_format (priv->data->template_html,
+ variant_path, NULL);
+ webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (theme),
+ template, basedir_uri);
+ g_free (basedir_uri);
+ g_free (variant_path);
+ g_free (template);
+}
+
+static void
theme_adium_match_newline (const gchar *text,
gssize len,
EmpathyStringReplace replace_func,
@@ -1018,14 +1043,8 @@ static void
theme_adium_clear (EmpathyChatView *view)
{
EmpathyThemeAdiumPriv *priv = GET_PRIV (view);
- gchar *basedir_uri;
- priv->pages_loading++;
- basedir_uri = g_strconcat ("file://", priv->data->basedir, NULL);
- webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (view),
- priv->data->template_html,
- basedir_uri);
- g_free (basedir_uri);
+ theme_adium_load_template (EMPATHY_THEME_ADIUM (view));
/* Clear last contact to avoid trying to add a 'joined'
* message when we don't have an insertion point. */
@@ -1503,7 +1522,6 @@ static void
theme_adium_constructed (GObject *object)
{
EmpathyThemeAdiumPriv *priv = GET_PRIV (object);
- gchar *basedir_uri;
const gchar *font_family = NULL;
gint font_size = 0;
WebKitWebView *webkit_view = WEBKIT_WEB_VIEW (object);
@@ -1534,13 +1552,9 @@ theme_adium_constructed (GObject *object)
object);
/* Load template */
- priv->pages_loading = 1;
+ theme_adium_load_template (EMPATHY_THEME_ADIUM (object));
- 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_free (basedir_uri);
+ priv->in_construction = FALSE;
}
static void
@@ -1555,6 +1569,9 @@ theme_adium_get_property (GObject *object,
case PROP_ADIUM_DATA:
g_value_set_boxed (value, priv->data);
break;
+ case PROP_VARIANT:
+ g_value_set_string (value, priv->variant);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -1567,6 +1584,7 @@ theme_adium_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
+ EmpathyThemeAdium *theme = EMPATHY_THEME_ADIUM (object);
EmpathyThemeAdiumPriv *priv = GET_PRIV (object);
switch (param_id) {
@@ -1574,6 +1592,9 @@ theme_adium_set_property (GObject *object,
g_assert (priv->data == NULL);
priv->data = g_value_dup_boxed (value);
break;
+ case PROP_VARIANT:
+ empathy_theme_adium_set_variant (theme, g_value_get_string (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -1603,6 +1624,15 @@ empathy_theme_adium_class_init (EmpathyThemeAdiumClass *klass)
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class,
+ PROP_VARIANT,
+ g_param_spec_string ("variant",
+ "The theme variant",
+ "Variant name for the theme",
+ NULL,
+ G_PARAM_CONSTRUCT |
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
g_type_class_add_private (object_class, sizeof (EmpathyThemeAdiumPriv));
}
@@ -1615,6 +1645,7 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
theme->priv = priv;
+ priv->in_construction = TRUE;
g_queue_init (&priv->message_queue);
priv->allow_scrolling = TRUE;
priv->smiley_manager = empathy_smiley_manager_dup_singleton ();
@@ -1636,15 +1667,49 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
}
EmpathyThemeAdium *
-empathy_theme_adium_new (EmpathyAdiumData *data)
+empathy_theme_adium_new (EmpathyAdiumData *data,
+ const gchar *variant)
{
g_return_val_if_fail (data != NULL, NULL);
return g_object_new (EMPATHY_TYPE_THEME_ADIUM,
"adium-data", data,
+ "variant", variant,
NULL);
}
+void
+empathy_theme_adium_set_variant (EmpathyThemeAdium *theme,
+ const gchar *variant)
+{
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
+ gchar *variant_path;
+ gchar *script;
+
+ if (!tp_strdiff (priv->variant, variant)) {
+ return;
+ }
+
+ g_free (priv->variant);
+ priv->variant = g_strdup (variant);
+
+ if (priv->in_construction) {
+ return;
+ }
+
+ DEBUG ("Update view with variant: '%s'", variant);
+ variant_path = adium_info_dup_path_for_variant (priv->data->info,
+ priv->variant);
+ script = g_strdup_printf ("setStylesheet(\"mainStyle\",\"%s\");", variant_path);
+
+ webkit_web_view_execute_script (WEBKIT_WEB_VIEW (theme), script);
+
+ g_free (variant_path);
+ g_free (script);
+
+ g_object_notify (G_OBJECT (theme), "variant");
+}
+
gboolean
empathy_adium_path_is_valid (const gchar *path)
{
@@ -1717,33 +1782,31 @@ adium_info_get_no_variant_name (GHashTable *info)
return name ? name : _("Normal");
}
-static const gchar *
-adium_info_get_default_or_first_variant (GHashTable *info)
-{
- const gchar *name;
- GPtrArray *variants;
-
- name = empathy_adium_info_get_default_variant (info);
- if (name != NULL) {
- return name;
- }
-
- variants = empathy_adium_info_get_available_variants (info);
- g_assert (variants->len > 0);
- return g_ptr_array_index (variants, 0);
-}
-
static gchar *
adium_info_dup_path_for_variant (GHashTable *info,
const gchar *variant)
{
guint version = adium_info_get_version (info);
const gchar *no_variant = adium_info_get_no_variant_name (info);
+ GPtrArray *variants;
+ guint i;
if (version <= 2 && !tp_strdiff (variant, no_variant)) {
return g_strdup ("main.css");
}
+ /* Verify the variant exists, fallback to the first one */
+ variants = empathy_adium_info_get_available_variants (info);
+ for (i = 0; i < variants->len; i++) {
+ if (!tp_strdiff (variant, g_ptr_array_index (variants, i))) {
+ break;
+ }
+ }
+ if (i == variants->len) {
+ DEBUG ("Variant %s does not exist", variant);
+ variant = g_ptr_array_index (variants, 0);
+ }
+
return g_strdup_printf ("Variants/%s.css", variant);
}
@@ -1827,7 +1890,6 @@ empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
EmpathyAdiumData *data;
gchar *template_html = NULL;
gchar *footer_html = NULL;
- gchar *variant_path;
gchar *tmp;
g_return_val_if_fail (empathy_adium_path_is_valid (path), NULL);
@@ -1928,15 +1990,12 @@ empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
g_free (tmp);
}
- variant_path = adium_info_dup_path_for_variant (info,
- adium_info_get_default_or_first_variant (info));
-
/* Old custom templates had only 4 parameters.
* New templates have 5 parameters */
if (data->version <= 2 && data->custom_template) {
tmp = string_with_format (template_html,
data->basedir,
- variant_path,
+ "%@", /* Leave variant unset */
"", /* The header */
footer_html ? footer_html : "",
NULL);
@@ -1944,7 +2003,7 @@ empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
tmp = string_with_format (template_html,
data->basedir,
data->version <= 2 ? "" : "@import url( \"main.css\" );",
- variant_path,
+ "%@", /* Leave variant unset */
"", /* The header */
footer_html ? footer_html : "",
NULL);
@@ -1954,7 +2013,6 @@ empathy_adium_data_new_with_info (const gchar *path, GHashTable *info)
g_free (template_html);
g_free (footer_html);
- g_free (variant_path);
return data;
}
diff --git a/libempathy-gtk/empathy-theme-adium.h b/libempathy-gtk/empathy-theme-adium.h
index d0ad0170d..1c01b7b37 100644
--- a/libempathy-gtk/empathy-theme-adium.h
+++ b/libempathy-gtk/empathy-theme-adium.h
@@ -49,7 +49,10 @@ struct _EmpathyThemeAdiumClass {
};
GType empathy_theme_adium_get_type (void) G_GNUC_CONST;
-EmpathyThemeAdium *empathy_theme_adium_new (EmpathyAdiumData *data);
+EmpathyThemeAdium *empathy_theme_adium_new (EmpathyAdiumData *data,
+ const gchar *variant);
+void empathy_theme_adium_set_variant (EmpathyThemeAdium *theme,
+ const gchar *variant);
gboolean empathy_adium_path_is_valid (const gchar *path);
diff --git a/libempathy-gtk/empathy-theme-manager.c b/libempathy-gtk/empathy-theme-manager.c
index 0dcb40a70..d50154b41 100644
--- a/libempathy-gtk/empathy-theme-manager.c
+++ b/libempathy-gtk/empathy-theme-manager.c
@@ -51,10 +51,17 @@
typedef struct {
GSettings *gsettings_chat;
gchar *name;
- gchar *adium_path;
GtkSettings *settings;
GList *boxes_views;
guint emit_changed_idle;
+ gboolean in_constructor;
+
+#ifdef HAVE_WEBKIT
+ EmpathyAdiumData *adium_data;
+ gchar *adium_variant;
+ /* list of weakref to EmpathyThemeAdium objects */
+ GList *adium_views;
+#endif
} EmpathyThemeManagerPriv;
enum {
@@ -74,6 +81,57 @@ static const gchar *themes[] = {
G_DEFINE_TYPE (EmpathyThemeManager, empathy_theme_manager, G_TYPE_OBJECT);
+static gboolean
+theme_manager_emit_changed_idle_cb (gpointer manager)
+{
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+ const gchar *adium_path = NULL;
+
+ if (priv->adium_data) {
+ adium_path = empathy_adium_data_get_path (priv->adium_data);
+ }
+ DEBUG ("Emit theme-changed with: name='%s' adium_path='%s' "
+ "adium_variant='%s'", priv->name, adium_path,
+ priv->adium_variant);
+
+ g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
+ priv->emit_changed_idle = 0;
+
+ return FALSE;
+}
+
+static void
+theme_manager_emit_changed (EmpathyThemeManager *manager)
+{
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+
+ /* We emit the signal in idle callback to be sure we emit it only once
+ * in the case both the name and adium_path changed */
+ if (priv->emit_changed_idle == 0 && !priv->in_constructor) {
+ priv->emit_changed_idle = g_idle_add (
+ theme_manager_emit_changed_idle_cb, manager);
+ }
+}
+
+static void
+theme_manager_view_weak_notify_cb (gpointer data,
+ GObject *where_the_object_was)
+{
+ GList **list = data;
+ *list = g_list_remove (*list, where_the_object_was);
+}
+
+static void
+clear_list_of_views (GList **views)
+{
+ while (*views) {
+ g_object_weak_unref ((*views)->data,
+ theme_manager_view_weak_notify_cb,
+ views);
+ *views = g_list_delete_link (*views, *views);
+ }
+}
+
static void
theme_manager_gdk_color_to_hex (GdkColor *gdk_color, gchar *str_color)
{
@@ -135,15 +193,6 @@ theme_manager_create_irc_view (EmpathyThemeManager *manager)
return theme;
}
-static void
-theme_manager_boxes_weak_notify_cb (gpointer data,
- GObject *where_the_object_was)
-{
- EmpathyThemeManagerPriv *priv = GET_PRIV (data);
-
- priv->boxes_views = g_list_remove (priv->boxes_views, where_the_object_was);
-}
-
static EmpathyThemeBoxes *
theme_manager_create_boxes_view (EmpathyThemeManager *manager)
{
@@ -153,8 +202,8 @@ theme_manager_create_boxes_view (EmpathyThemeManager *manager)
theme = empathy_theme_boxes_new ();
priv->boxes_views = g_list_prepend (priv->boxes_views, theme);
g_object_weak_ref (G_OBJECT (theme),
- theme_manager_boxes_weak_notify_cb,
- manager);
+ theme_manager_view_weak_notify_cb,
+ &priv->boxes_views);
return theme;
}
@@ -320,6 +369,88 @@ theme_manager_update_boxes_theme (EmpathyThemeManager *manager,
}
}
+#ifdef HAVE_WEBKIT
+static EmpathyThemeAdium *
+theme_manager_create_adium_view (EmpathyThemeManager *manager)
+{
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+ EmpathyThemeAdium *theme;
+
+ theme = empathy_theme_adium_new (priv->adium_data, priv->adium_variant);
+ priv->adium_views = g_list_prepend (priv->adium_views, theme);
+ g_object_weak_ref (G_OBJECT (theme),
+ theme_manager_view_weak_notify_cb,
+ &priv->adium_views);
+
+ return theme;
+}
+
+static void
+theme_manager_notify_adium_path_cb (GSettings *gsettings_chat,
+ const gchar *key,
+ gpointer user_data)
+{
+ EmpathyThemeManager *manager = EMPATHY_THEME_MANAGER (user_data);
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+ const gchar *current_path = NULL;
+ gchar *new_path;
+
+ new_path = g_settings_get_string (gsettings_chat, key);
+
+ if (priv->adium_data != NULL) {
+ current_path = empathy_adium_data_get_path (priv->adium_data);
+ }
+
+ /* If path did not really changed, ignore */
+ if (!tp_strdiff (current_path, new_path)) {
+ g_free (new_path);
+ return;
+ }
+
+ /* If path does not really contains an adium path, ignore */
+ if (!empathy_adium_path_is_valid (new_path)) {
+ DEBUG ("Invalid theme path set: %s", new_path);
+ g_free (new_path);
+ return;
+ }
+
+ /* Load new theme data, we can stop tracking existing views since we
+ * won't be able to change them live anymore */
+ clear_list_of_views (&priv->adium_views);
+ tp_clear_pointer (&priv->adium_data, empathy_adium_data_unref);
+ priv->adium_data = empathy_adium_data_new (new_path);
+
+ theme_manager_emit_changed (manager);
+
+ g_free (new_path);
+}
+
+static void
+theme_manager_notify_adium_variant_cb (GSettings *gsettings_chat,
+ const gchar *key,
+ gpointer user_data)
+{
+ EmpathyThemeManager *manager = EMPATHY_THEME_MANAGER (user_data);
+ EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
+ gchar *new_variant;
+ GList *l;
+
+ new_variant = g_settings_get_string (gsettings_chat, key);
+ if (!tp_strdiff (priv->adium_variant, new_variant)) {
+ g_free (new_variant);
+ return;
+ }
+
+ g_free (priv->adium_variant);
+ priv->adium_variant = new_variant;
+
+ for (l = priv->adium_views; l; l = l->next) {
+ empathy_theme_adium_set_variant (EMPATHY_THEME_ADIUM (l->data),
+ priv->adium_variant);
+ }
+}
+#endif /* HAVE_WEBKIT */
+
EmpathyChatView *
empathy_theme_manager_create_view (EmpathyThemeManager *manager)
{
@@ -331,33 +462,8 @@ empathy_theme_manager_create_view (EmpathyThemeManager *manager)
DEBUG ("Using theme %s", priv->name);
#ifdef HAVE_WEBKIT
- if (strcmp (priv->name, "adium") == 0) {
- 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));
- }
+ if (strcmp (priv->name, "adium") == 0 && priv->adium_data != NULL) {
+ return EMPATHY_CHAT_VIEW (theme_manager_create_adium_view (manager));
}
#endif
@@ -394,7 +500,6 @@ theme_manager_ensure_theme_exists (const gchar *name)
}
typedef enum {
- THEME_TYPE_UNSET,
THEME_TYPE_IRC,
THEME_TYPE_BOXED,
THEME_TYPE_ADIUM,
@@ -403,9 +508,7 @@ typedef enum {
static ThemeType
theme_type (const gchar *name)
{
- if (name == NULL) {
- return THEME_TYPE_UNSET;
- } else if (!tp_strdiff (name, "classic")) {
+ if (!tp_strdiff (name, "classic")) {
return THEME_TYPE_IRC;
} else if (!tp_strdiff (name, "adium")) {
return THEME_TYPE_ADIUM;
@@ -414,30 +517,6 @@ theme_type (const gchar *name)
}
}
-static gboolean
-theme_manager_emit_changed_idle_cb (gpointer manager)
-{
- EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-
- g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
- priv->emit_changed_idle = 0;
-
- return FALSE;
-}
-
-static void
-theme_manager_emit_changed (EmpathyThemeManager *manager)
-{
- EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-
- /* We emit the signal in idle callback to be sure we emit it only once
- * in the case both the name and adium_path changed */
- if (priv->emit_changed_idle == 0) {
- priv->emit_changed_idle = g_idle_add (
- theme_manager_emit_changed_idle_cb, manager);
- }
-}
-
static void
theme_manager_notify_name_cb (GSettings *gsettings_chat,
const gchar *key,
@@ -478,42 +557,12 @@ theme_manager_notify_name_cb (GSettings *gsettings_chat,
}
}
- /* Do not emit theme-changed if theme type didn't change, or if it was
- * unset (the manager is under construction). If theme changed from a
- * boxed to another boxed, all view are updated in place. If theme
- * changed from an adium to another adium, the signal will be emited
- * from theme_manager_notify_adium_path_cb ()
+ /* Do not emit theme-changed if theme type didn't change. If theme
+ * changed from a boxed to another boxed, all view are updated in place.
+ * If theme changed from an adium to another adium, the signal will be
+ * emited from theme_manager_notify_adium_path_cb ()
*/
- if (old_type != new_type && old_type != THEME_TYPE_UNSET) {
- theme_manager_emit_changed (manager);
- }
-}
-
-static void
-theme_manager_notify_adium_path_cb (GSettings *gsettings_chat,
- const gchar *key,
- gpointer user_data)
-{
- EmpathyThemeManager *manager = EMPATHY_THEME_MANAGER (user_data);
- EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
- gchar *adium_path = NULL;
- gboolean was_set;
-
- adium_path = g_settings_get_string (gsettings_chat, key);
-
- if (!tp_strdiff (priv->adium_path, adium_path)) {
- g_free (adium_path);
- return;
- }
-
- was_set = (priv->adium_path != NULL);
-
- g_free (priv->adium_path);
- priv->adium_path = adium_path;
-
- /* Do not emit the signal if path was not set yet (the manager is under
- * construction) */
- if (was_set) {
+ if (old_type != new_type) {
theme_manager_emit_changed (manager);
}
}
@@ -522,23 +571,22 @@ static void
theme_manager_finalize (GObject *object)
{
EmpathyThemeManagerPriv *priv = GET_PRIV (object);
- GList *l;
g_object_unref (priv->gsettings_chat);
g_free (priv->name);
- g_free (priv->adium_path);
-
- for (l = priv->boxes_views; l; l = l->next) {
- g_object_weak_unref (G_OBJECT (l->data),
- theme_manager_boxes_weak_notify_cb,
- object);
- }
- g_list_free (priv->boxes_views);
if (priv->emit_changed_idle != 0) {
g_source_remove (priv->emit_changed_idle);
}
+ clear_list_of_views (&priv->boxes_views);
+
+#ifdef HAVE_WEBKIT
+ clear_list_of_views (&priv->adium_views);
+ g_free (priv->adium_variant);
+ tp_clear_pointer (&priv->adium_data, empathy_adium_data_unref);
+#endif
+
G_OBJECT_CLASS (empathy_theme_manager_parent_class)->finalize (object);
}
@@ -569,6 +617,7 @@ empathy_theme_manager_init (EmpathyThemeManager *manager)
EMPATHY_TYPE_THEME_MANAGER, EmpathyThemeManagerPriv);
manager->priv = priv;
+ priv->in_constructor = TRUE;
priv->gsettings_chat = g_settings_new (EMPATHY_PREFS_CHAT_SCHEMA);
@@ -581,7 +630,8 @@ empathy_theme_manager_init (EmpathyThemeManager *manager)
EMPATHY_PREFS_CHAT_THEME,
manager);
- /* Take the adium path and track changes */
+#ifdef HAVE_WEBKIT
+ /* Take the adium path/variant and track changes */
g_signal_connect (priv->gsettings_chat,
"changed::" EMPATHY_PREFS_CHAT_ADIUM_PATH,
G_CALLBACK (theme_manager_notify_adium_path_cb),
@@ -589,6 +639,16 @@ empathy_theme_manager_init (EmpathyThemeManager *manager)
theme_manager_notify_adium_path_cb (priv->gsettings_chat,
EMPATHY_PREFS_CHAT_ADIUM_PATH,
manager);
+
+ g_signal_connect (priv->gsettings_chat,
+ "changed::" EMPATHY_PREFS_CHAT_THEME_VARIANT,
+ G_CALLBACK (theme_manager_notify_adium_variant_cb),
+ manager);
+ theme_manager_notify_adium_variant_cb (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_THEME_VARIANT,
+ manager);
+#endif
+ priv->in_constructor = FALSE;
}
EmpathyThemeManager *
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index cf3228da5..0b0bf3050 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -1959,7 +1959,9 @@ empathy_individual_match_string (FolksIndividual *individual,
GPtrArray *words)
{
const gchar *str;
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
+ gboolean retval = FALSE;
/* check alias name */
str = folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (individual));
@@ -1970,33 +1972,42 @@ empathy_individual_match_string (FolksIndividual *individual,
personas = folks_individual_get_personas (individual);
/* check contact id, remove the @server.com part */
- for (l = personas; l; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (retval == FALSE && gee_iterator_next (iter))
{
+ FolksPersona *persona = gee_iterator_get (iter);
const gchar *p;
- gchar *dup_str = NULL;
- gboolean visible;
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
-
- str = folks_persona_get_display_id (l->data);
-
- /* Accept the persona if @text is a full prefix of his ID; that allows
- * user to find, say, a jabber contact by typing his JID. */
- if (g_str_has_prefix (str, text))
- return TRUE;
-
- p = strstr (str, "@");
- if (p != NULL)
- str = dup_str = g_strndup (str, p - str);
-
- visible = empathy_live_search_match_words (str, words);
- g_free (dup_str);
- if (visible)
- return TRUE;
+ if (empathy_folks_persona_is_interesting (persona))
+ {
+ str = folks_persona_get_display_id (persona);
+
+ /* Accept the persona if @text is a full prefix of his ID; that allows
+ * user to find, say, a jabber contact by typing his JID. */
+ if (!g_str_has_prefix (str, text))
+ {
+ retval = TRUE;
+ }
+ else
+ {
+ gchar *dup_str = NULL;
+ gboolean visible;
+
+ p = strstr (str, "@");
+ if (p != NULL)
+ str = dup_str = g_strndup (str, p - str);
+
+ visible = empathy_live_search_match_words (str, words);
+ g_free (dup_str);
+ if (visible)
+ retval = TRUE;
+ }
+ }
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
/* FIXME: Add more rules here, we could check phone numbers in
* contact's vCard for example. */
- return FALSE;
+ return retval;
}
diff --git a/libempathy/Makefile.am b/libempathy/Makefile.am
index cfea24c0e..41cec88fd 100644
--- a/libempathy/Makefile.am
+++ b/libempathy/Makefile.am
@@ -11,6 +11,7 @@ AM_CPPFLAGS = \
-DGCR_API_SUBJECT_TO_CHANGE \
$(EMPATHY_CFLAGS) \
$(GEOCLUE_CFLAGS) \
+ $(GEOCODE_CFLAGS) \
$(NETWORK_MANAGER_CFLAGS) \
$(CONNMAN_CFLAGS) \
$(WARN_CFLAGS) \
@@ -112,6 +113,7 @@ libempathy_la_LIBADD = \
$(GCR_LIBS) \
$(EMPATHY_LIBS) \
$(GEOCLUE_LIBS) \
+ $(GEOCODE_LIBS) \
$(NETWORK_MANAGER_LIBS) \
$(CONNMAN_LIBS)
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index 7b23df0fc..a90b20ece 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -34,8 +34,8 @@
#include <folks/folks.h>
#include <folks/folks-telepathy.h>
-#ifdef HAVE_GEOCLUE
-#include <geoclue/geoclue-geocode.h>
+#ifdef HAVE_GEOCODE
+#include <geocode-glib/geocode-glib.h>
#endif
#include "empathy-contact.h"
@@ -69,7 +69,7 @@ typedef struct {
* more fields by searching the address using geoclue.
*/
GHashTable *location;
- GHashTable *groups;
+ GeeHashSet *groups;
gchar **client_types;
} EmpathyContactPriv;
@@ -79,7 +79,7 @@ static void contact_get_property (GObject *object, guint param_id,
static void contact_set_property (GObject *object, guint param_id,
const GValue *value, GParamSpec *pspec);
-#ifdef HAVE_GEOCLUE
+#ifdef HAVE_GEOCODE
static void update_geocode (EmpathyContact *contact);
#endif
@@ -424,8 +424,7 @@ contact_finalize (GObject *object)
DEBUG ("finalize: %p", object);
- if (priv->groups != NULL)
- g_hash_table_destroy (priv->groups);
+ g_clear_object (&priv->groups);
g_free (priv->alias);
g_free (priv->id);
g_strfreev (priv->client_types);
@@ -789,12 +788,11 @@ empathy_contact_change_group (EmpathyContact *contact, const gchar *group,
* does */
if (priv->groups == NULL)
{
- priv->groups = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
- NULL);
+ priv->groups = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup,
+ g_free, g_str_hash, g_str_equal);
}
- g_hash_table_insert (priv->groups, g_strdup (group),
- GUINT_TO_POINTER (is_member));
+ gee_collection_add (GEE_COLLECTION (priv->groups), group);
}
EmpathyAvatar *
@@ -877,13 +875,16 @@ empathy_contact_get_persona (EmpathyContact *contact)
for (l = individuals; l != NULL; l = l->next)
{
- GList *personas, *j;
FolksIndividual *individual = FOLKS_INDIVIDUAL (l->data);
+ GeeSet *personas;
+ GeeIterator *iter;
+ gboolean persona_found = FALSE;
personas = folks_individual_get_personas (individual);
- for (j = personas; j != NULL; j = j->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (!persona_found && gee_iterator_next (iter))
{
- TpfPersona *persona = j->data;
+ TpfPersona *persona = gee_iterator_get (iter);
if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona)))
{
@@ -894,13 +895,14 @@ empathy_contact_get_persona (EmpathyContact *contact)
/* Found the right persona */
empathy_contact_set_persona (contact,
(FolksPersona *) persona);
- goto finished;
+ persona_found = TRUE;
}
+ g_clear_object (&persona);
}
}
+ g_clear_object (&iter);
}
-finished:
g_list_free (individuals);
g_object_unref (manager);
}
@@ -945,8 +947,8 @@ empathy_contact_set_persona (EmpathyContact *contact,
if (priv->groups != NULL)
{
folks_group_details_set_groups (FOLKS_GROUP_DETAILS (persona),
- priv->groups);
- g_hash_table_destroy (priv->groups);
+ GEE_SET (priv->groups));
+ g_object_unref (priv->groups);
priv->groups = NULL;
}
}
@@ -1438,7 +1440,7 @@ empathy_contact_set_location (EmpathyContact *contact,
g_hash_table_unref (priv->location);
priv->location = g_hash_table_ref (location);
-#ifdef HAVE_GEOCLUE
+#ifdef HAVE_GEOCODE
update_geocode (contact);
#endif
g_object_notify (G_OBJECT (contact), "location");
@@ -1506,41 +1508,37 @@ empathy_contact_equal (gconstpointer contact1,
return FALSE;
}
-#ifdef HAVE_GEOCLUE
-#define GEOCODE_SERVICE "org.freedesktop.Geoclue.Providers.Yahoo"
-#define GEOCODE_PATH "/org/freedesktop/Geoclue/Providers/Yahoo"
-
-/* This callback is called by geoclue when it found a position
+#ifdef HAVE_GEOCODE
+/* This callback is called by geocode-glib when it found a position
* for the given address. A position is necessary for a contact
* to show up on the map
*/
static void
-geocode_cb (GeoclueGeocode *geocode,
- GeocluePositionFields fields,
- double latitude,
- double longitude,
- double altitude,
- GeoclueAccuracy *accuracy,
- GError *error,
- gpointer contact)
+geocode_cb (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
{
+ EmpathyContact *contact = user_data;
EmpathyContactPriv *priv = GET_PRIV (contact);
+ GError *error = NULL;
GHashTable *new_location;
+ GHashTable *resolved;
+ gdouble latitude, longitude;
if (priv->location == NULL)
goto out;
- if (error != NULL)
+ resolved = geocode_object_resolve_finish (GEOCODE_OBJECT (source), result,
+ &error);
+
+ if (resolved == NULL)
{
- DEBUG ("Error geocoding location : %s", error->message);
+ DEBUG ("Failed to resolve geocode: %s", error->message);
+ g_error_free (error);
goto out;
}
- /* No need to change location if we didn't find the position */
- if (!(fields & GEOCLUE_POSITION_FIELDS_LATITUDE))
- goto out;
-
- if (!(fields & GEOCLUE_POSITION_FIELDS_LONGITUDE))
+ if (!geocode_object_get_coords (resolved, &longitude, &latitude))
goto out;
new_location = tp_asv_new (
@@ -1556,43 +1554,20 @@ geocode_cb (GeoclueGeocode *geocode,
tp_g_hash_table_update (new_location, priv->location,
(GBoxedCopyFunc) g_strdup, (GBoxedCopyFunc) tp_g_value_slice_dup);
- /* Set the altitude only if it wasn't defined before */
- if (fields & GEOCLUE_POSITION_FIELDS_ALTITUDE &&
- g_hash_table_lookup (new_location, EMPATHY_LOCATION_ALT) == NULL)
- {
- tp_asv_set_double (new_location, g_strdup (EMPATHY_LOCATION_ALT),
- altitude);
- DEBUG ("\t - Altitude: %f", altitude);
- }
-
/* Don't change the accuracy as we used an address to get this position */
g_hash_table_unref (priv->location);
priv->location = new_location;
- g_object_notify (contact, "location");
+ g_object_notify ((GObject *) contact, "location");
+
out:
- g_object_unref (geocode);
+ tp_clear_pointer (&result, g_hash_table_unref);
g_object_unref (contact);
}
-static gchar *
-get_dup_string (GHashTable *location,
- gchar *key)
-{
- GValue *value;
-
- value = g_hash_table_lookup (location, key);
- if (value != NULL)
- return g_value_dup_string (value);
-
- return NULL;
-}
-
static void
update_geocode (EmpathyContact *contact)
{
- static GeoclueGeocode *geocode;
- gchar *str;
- GHashTable *address;
+ GeocodeObject *geocode;
GHashTable *location;
location = empathy_contact_get_location (contact);
@@ -1604,75 +1579,12 @@ update_geocode (EmpathyContact *contact)
g_hash_table_lookup (location, EMPATHY_LOCATION_LON) != NULL)
return;
- if (geocode == NULL)
- {
- geocode = geoclue_geocode_new (GEOCODE_SERVICE, GEOCODE_PATH);
- g_object_add_weak_pointer (G_OBJECT (geocode), (gpointer *) &geocode);
- }
- else
- {
- g_object_ref (geocode);
- }
+ geocode = geocode_object_new_for_params (location);
- address = geoclue_address_details_new ();
+ geocode_object_resolve_async (geocode, NULL, geocode_cb,
+ g_object_ref (contact));
- 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 (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 (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 (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 (GEOCLUE_ADDRESS_KEY_STREET), str);
- DEBUG ("\t - street: %s", str);
- }
-
- if (g_hash_table_size (address) > 0)
- {
- g_object_ref (contact);
-
- geoclue_geocode_address_to_position_async (geocode, address,
- geocode_cb, contact);
- }
-
- g_hash_table_unref (address);
+ g_object_unref (geocode);
}
#endif
@@ -1983,35 +1895,39 @@ EmpathyContact *
empathy_contact_dup_best_for_action (FolksIndividual *individual,
EmpathyActionType action_type)
{
- GList *personas, *contacts, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
+ GList *contacts;
EmpathyContact *best_contact = NULL;
/* Build a list of EmpathyContacts that we can sort */
personas = folks_individual_get_personas (individual);
contacts = NULL;
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
+ FolksPersona *persona = gee_iterator_get (iter);
TpContact *tp_contact;
- EmpathyContact *contact;
+ EmpathyContact *contact = NULL;
- if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- continue;
+ if (!empathy_folks_persona_is_interesting (persona))
+ goto while_finish;
- tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data));
+ tp_contact = tpf_persona_get_contact (TPF_PERSONA (persona));
contact = empathy_contact_dup_from_tp_contact (tp_contact);
- empathy_contact_set_persona (contact, FOLKS_PERSONA (l->data));
+ empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
/* Only choose the contact if they're actually capable of the specified
* action. */
- if (!empathy_contact_can_do_action (contact, action_type))
- {
- g_object_unref (contact);
- continue;
- }
+ if (empathy_contact_can_do_action (contact, action_type))
+ contacts = g_list_prepend (contacts, g_object_ref (contact));
- contacts = g_list_prepend (contacts, contact);
+while_finish:
+ g_clear_object (&contact);
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
/* Sort the contacts by some heuristic based on the action type, then take
* the top contact. */
diff --git a/libempathy/empathy-gsettings.h b/libempathy/empathy-gsettings.h
index 8d24e8b5e..60726d17e 100644
--- a/libempathy/empathy-gsettings.h
+++ b/libempathy/empathy-gsettings.h
@@ -55,6 +55,7 @@ G_BEGIN_DECLS
#define EMPATHY_PREFS_CHAT_SHOW_SMILEYS "graphical-smileys"
#define EMPATHY_PREFS_CHAT_SHOW_CONTACTS_IN_ROOMS "show-contacts-in-rooms"
#define EMPATHY_PREFS_CHAT_THEME "theme"
+#define EMPATHY_PREFS_CHAT_THEME_VARIANT "theme-variant"
#define EMPATHY_PREFS_CHAT_ADIUM_PATH "adium-path"
#define EMPATHY_PREFS_CHAT_SPELL_CHECKER_LANGUAGES "spell-checker-languages"
#define EMPATHY_PREFS_CHAT_SPELL_CHECKER_ENABLED "spell-checker-enabled"
diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c
index 088c67fd8..f6aa49184 100644
--- a/libempathy/empathy-individual-manager.c
+++ b/libempathy/empathy-individual-manager.c
@@ -162,34 +162,43 @@ individual_notify_personas_cb (FolksIndividual *individual,
static void
aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator,
- GList *added,
- GList *removed,
+ GeeSet *added,
+ GeeSet *removed,
const char *message,
FolksPersona *actor,
guint reason,
EmpathyIndividualManager *self)
{
EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
- GList *l, *added_filtered = NULL;
+ GeeIterator *iter;
+ GList *added_filtered = NULL, *removed_list = NULL;
/* Handle the removals first, as one of the added Individuals might have the
* same ID as one of the removed Individuals (due to linking). */
- for (l = removed; l; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (removed));
+ while (gee_iterator_next (iter))
{
- FolksIndividual *ind = FOLKS_INDIVIDUAL (l->data);
+ FolksIndividual *ind = gee_iterator_get (iter);
g_signal_handlers_disconnect_by_func (ind,
individual_notify_personas_cb, self);
if (g_hash_table_lookup (priv->individuals,
folks_individual_get_id (ind)) != NULL)
- remove_individual (self, ind);
+ {
+ remove_individual (self, ind);
+ removed_list = g_list_prepend (removed_list, ind);
+ }
+
+ g_clear_object (&ind);
}
+ g_clear_object (&iter);
/* Filter the individuals for ones which contain EmpathyContacts */
- for (l = added; l; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (added));
+ while (gee_iterator_next (iter))
{
- FolksIndividual *ind = FOLKS_INDIVIDUAL (l->data);
+ FolksIndividual *ind = gee_iterator_get (iter);
g_signal_connect (ind, "notify::personas",
G_CALLBACK (individual_notify_personas_cb), self);
@@ -199,7 +208,10 @@ aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator,
add_individual (self, ind);
added_filtered = g_list_prepend (added_filtered, ind);
}
+
+ g_clear_object (&ind);
}
+ g_clear_object (&iter);
/* Bail if we have no individuals left */
if (added_filtered == NULL && removed == NULL)
@@ -208,11 +220,12 @@ aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator,
added_filtered = g_list_reverse (added_filtered);
g_signal_emit (self, signals[MEMBERS_CHANGED], 0, message,
- added_filtered, removed,
+ added_filtered, removed_list,
tp_channel_group_change_reason_from_folks_groups_change_reason (reason),
TRUE);
g_list_free (added_filtered);
+ g_list_free (removed_list);
}
static void
@@ -388,7 +401,8 @@ empathy_individual_manager_add_from_contact (EmpathyIndividualManager *self,
FolksBackendStore *backend_store;
FolksBackend *backend;
FolksPersonaStore *persona_store;
- GHashTable* details, *persona_stores;
+ GHashTable* details;
+ GeeMap *persona_stores;
TpAccount *account;
const gchar *store_id;
@@ -420,7 +434,7 @@ empathy_individual_manager_add_from_contact (EmpathyIndividualManager *self,
}
persona_stores = folks_backend_get_persona_stores (backend);
- persona_store = g_hash_table_lookup (persona_stores, store_id);
+ persona_store = gee_map_get (persona_stores, store_id);
if (persona_store == NULL)
{
@@ -438,6 +452,7 @@ empathy_individual_manager_add_from_contact (EmpathyIndividualManager *self,
aggregator_add_persona_from_details_cb, contact);
g_hash_table_destroy (details);
+ g_object_unref (persona_store);
finish:
tp_clear_object (&backend);
@@ -500,32 +515,36 @@ gboolean
empathy_individual_manager_supports_blocking (EmpathyIndividualManager *self,
FolksIndividual *individual)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
+ gboolean retval = FALSE;
g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (self), FALSE);
personas = folks_individual_get_personas (individual);
-
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (!retval && gee_iterator_next (iter))
{
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
TpConnection *conn;
EmpathyContactManager *manager;
- if (!TPF_IS_PERSONA (persona))
- continue;
-
- conn = tp_contact_get_connection (tpf_persona_get_contact (persona));
- manager = empathy_contact_manager_dup_singleton ();
+ if (TPF_IS_PERSONA (persona))
+ {
+ conn = tp_contact_get_connection (tpf_persona_get_contact (persona));
+ manager = empathy_contact_manager_dup_singleton ();
- if (empathy_contact_manager_get_flags_for_connection (manager, conn) &
- EMPATHY_CONTACT_LIST_CAN_BLOCK)
- return TRUE;
+ if (empathy_contact_manager_get_flags_for_connection (manager, conn) &
+ EMPATHY_CONTACT_LIST_CAN_BLOCK)
+ retval = TRUE;
- g_object_unref (manager);
+ g_object_unref (manager);
+ }
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
- return FALSE;
+ return retval;
}
void
@@ -534,37 +553,40 @@ empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
gboolean blocked,
gboolean abusive)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
g_return_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (self));
personas = folks_individual_get_personas (individual);
-
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter))
{
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
EmpathyContact *contact;
EmpathyContactManager *manager;
EmpathyContactListFlags flags;
- if (!TPF_IS_PERSONA (persona))
- continue;
-
- contact = empathy_contact_dup_from_tp_contact (
- tpf_persona_get_contact (persona));
- empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
- manager = empathy_contact_manager_dup_singleton ();
- flags = empathy_contact_manager_get_flags_for_connection (manager,
- empathy_contact_get_connection (contact));
-
- if (flags & EMPATHY_CONTACT_LIST_CAN_BLOCK)
- empathy_contact_list_set_blocked (
- EMPATHY_CONTACT_LIST (manager),
- contact, blocked, abusive);
-
- g_object_unref (manager);
- g_object_unref (contact);
+ if (TPF_IS_PERSONA (persona))
+ {
+ contact = empathy_contact_dup_from_tp_contact (
+ tpf_persona_get_contact (persona));
+ empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
+ manager = empathy_contact_manager_dup_singleton ();
+ flags = empathy_contact_manager_get_flags_for_connection (manager,
+ empathy_contact_get_connection (contact));
+
+ if (flags & EMPATHY_CONTACT_LIST_CAN_BLOCK)
+ empathy_contact_list_set_blocked (
+ EMPATHY_CONTACT_LIST (manager),
+ contact, blocked, abusive);
+
+ g_object_unref (manager);
+ g_object_unref (contact);
+ }
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
}
static void
@@ -629,7 +651,7 @@ link_personas_cb (FolksIndividualAggregator *aggregator,
void
empathy_individual_manager_link_personas (EmpathyIndividualManager *self,
- GList *personas)
+ GeeSet *personas)
{
EmpathyIndividualManagerPriv *priv;
@@ -638,7 +660,8 @@ empathy_individual_manager_link_personas (EmpathyIndividualManager *self,
priv = GET_PRIV (self);
- DEBUG ("Linking %u personas", g_list_length (personas));
+ DEBUG ("Linking %u personas",
+ gee_collection_get_size (GEE_COLLECTION (personas)));
folks_individual_aggregator_link_personas (priv->aggregator, personas,
(GAsyncReadyCallback) link_personas_cb, NULL);
diff --git a/libempathy/empathy-individual-manager.h b/libempathy/empathy-individual-manager.h
index 1fec67d91..0d5cc74d4 100644
--- a/libempathy/empathy-individual-manager.h
+++ b/libempathy/empathy-individual-manager.h
@@ -75,7 +75,7 @@ void empathy_individual_manager_remove_group (EmpathyIndividualManager *manager,
const gchar *group);
void empathy_individual_manager_link_personas (EmpathyIndividualManager *self,
- GList *personas);
+ GeeSet *personas);
void empathy_individual_manager_unlink_individual (
EmpathyIndividualManager *self,
diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c
index d62066fb3..4d6506b6e 100644
--- a/libempathy/empathy-utils.c
+++ b/libempathy/empathy-utils.c
@@ -776,18 +776,30 @@ empathy_folks_presence_type_to_tp (FolksPresenceType type)
gboolean
empathy_folks_individual_contains_contact (FolksIndividual *individual)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
+ gboolean retval = FALSE;
g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), FALSE);
personas = folks_individual_get_personas (individual);
- for (l = personas; l != NULL; l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (!retval && gee_iterator_next (iter))
{
- if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data)))
- return (tpf_persona_get_contact (TPF_PERSONA (l->data)) != NULL);
+ FolksPersona *persona = gee_iterator_get (iter);
+ TpContact *contact = NULL;
+
+ if (empathy_folks_persona_is_interesting (persona))
+ contact = tpf_persona_get_contact (TPF_PERSONA (persona));
+
+ g_clear_object (&persona);
+
+ if (contact != NULL)
+ retval = TRUE;
}
+ g_clear_object (&iter);
- return FALSE;
+ return retval;
}
/* TODO: this needs to be eliminated (and replaced in some cases with user
@@ -800,15 +812,17 @@ empathy_folks_individual_contains_contact (FolksIndividual *individual)
EmpathyContact *
empathy_contact_dup_from_folks_individual (FolksIndividual *individual)
{
- GList *personas, *l;
+ GeeSet *personas;
+ GeeIterator *iter;
EmpathyContact *contact = NULL;
g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
personas = folks_individual_get_personas (individual);
- for (l = personas; (l != NULL) && (contact == NULL); l = l->next)
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (gee_iterator_next (iter) && (contact == NULL))
{
- TpfPersona *persona = l->data;
+ TpfPersona *persona = gee_iterator_get (iter);
if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona)))
{
@@ -818,7 +832,9 @@ empathy_contact_dup_from_folks_individual (FolksIndividual *individual)
contact = empathy_contact_dup_from_tp_contact (tp_contact);
empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
}
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
return contact;
}
@@ -831,7 +847,7 @@ tp_channel_group_change_reason_from_folks_groups_change_reason (
}
TpfPersonaStore *
-empathy_get_persona_store_for_connection (TpConnection *connection)
+empathy_dup_persona_store_for_connection (TpConnection *connection)
{
FolksBackendStore *backend_store;
FolksBackend *backend;
@@ -842,14 +858,14 @@ empathy_get_persona_store_for_connection (TpConnection *connection)
"telepathy");
if (backend != NULL)
{
- GHashTable *stores_hash;
- GList *stores, *l;
+ GeeMap *stores_map;
+ GeeMapIterator *iter;
- stores_hash = folks_backend_get_persona_stores (backend);
- stores = g_hash_table_get_values (stores_hash);
- for (l = stores; l != NULL && result == NULL; l = l->next)
+ stores_map = folks_backend_get_persona_stores (backend);
+ iter = gee_map_map_iterator (stores_map);
+ while (gee_map_iterator_next (iter))
{
- TpfPersonaStore *persona_store = TPF_PERSONA_STORE (l->data);
+ TpfPersonaStore *persona_store = gee_map_iterator_get_value (iter);
TpAccount *account;
TpConnection *conn_cur;
@@ -858,8 +874,7 @@ empathy_get_persona_store_for_connection (TpConnection *connection)
if (conn_cur == connection)
result = persona_store;
}
-
- g_list_free (stores);
+ g_clear_object (&iter);
}
g_object_unref (backend);
@@ -871,43 +886,58 @@ empathy_get_persona_store_for_connection (TpConnection *connection)
gboolean
empathy_connection_can_add_personas (TpConnection *connection)
{
+ gboolean retval;
FolksPersonaStore *persona_store;
g_return_val_if_fail (TP_IS_CONNECTION (connection), FALSE);
persona_store = FOLKS_PERSONA_STORE (
- empathy_get_persona_store_for_connection (connection));
+ empathy_dup_persona_store_for_connection (connection));
- return (folks_persona_store_get_can_add_personas (persona_store) ==
+ retval = (folks_persona_store_get_can_add_personas (persona_store) ==
FOLKS_MAYBE_BOOL_TRUE);
+
+ g_clear_object (&persona_store);
+
+ return retval;
}
gboolean
empathy_connection_can_alias_personas (TpConnection *connection)
{
+ gboolean retval;
FolksPersonaStore *persona_store;
g_return_val_if_fail (TP_IS_CONNECTION (connection), FALSE);
persona_store = FOLKS_PERSONA_STORE (
- empathy_get_persona_store_for_connection (connection));
+ empathy_dup_persona_store_for_connection (connection));
- return (folks_persona_store_get_can_alias_personas (persona_store) ==
+ retval = (folks_persona_store_get_can_alias_personas (persona_store) ==
FOLKS_MAYBE_BOOL_TRUE);
+
+ g_clear_object (&persona_store);
+
+ return retval;
}
gboolean
empathy_connection_can_group_personas (TpConnection *connection)
{
+ gboolean retval;
FolksPersonaStore *persona_store;
g_return_val_if_fail (TP_IS_CONNECTION (connection), FALSE);
persona_store = FOLKS_PERSONA_STORE (
- empathy_get_persona_store_for_connection (connection));
+ empathy_dup_persona_store_for_connection (connection));
- return (folks_persona_store_get_can_group_personas (persona_store) ==
+ retval = (folks_persona_store_get_can_group_personas (persona_store) ==
FOLKS_MAYBE_BOOL_TRUE);
+
+ g_clear_object (&persona_store);
+
+ return retval;
}
gboolean
diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h
index ac44535b8..157569453 100644
--- a/libempathy/empathy-utils.h
+++ b/libempathy/empathy-utils.h
@@ -109,7 +109,7 @@ TpConnectionPresenceType empathy_folks_presence_type_to_tp (FolksPresenceType ty
gboolean empathy_folks_individual_contains_contact (FolksIndividual *individual);
EmpathyContact * empathy_contact_dup_from_folks_individual (FolksIndividual *individual);
TpChannelGroupChangeReason tp_channel_group_change_reason_from_folks_groups_change_reason (FolksGroupDetailsChangeReason reason);
-TpfPersonaStore * empathy_get_persona_store_for_connection (TpConnection *connection);
+TpfPersonaStore * empathy_dup_persona_store_for_connection (TpConnection *connection);
gboolean empathy_connection_can_add_personas (TpConnection *connection);
gboolean empathy_connection_can_alias_personas (TpConnection *connection);
gboolean empathy_connection_can_group_personas (TpConnection *connection);
diff --git a/po/eo.po b/po/eo.po
index d9db333af..aad9dadff 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,4 +1,4 @@
-# Esperanto translation of Empathy.
+# Esperanto translation for Empathy.
# Copyright (C) 2004-2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the Empathy package.
#
@@ -8,11 +8,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Gossip 0.7.5\n"
+"Project-Id-Version: empathy master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=empathy&keywords=I18N+L10N&component=General\n"
-"POT-Creation-Date: 2011-05-14 19:07+0000\n"
-"PO-Revision-Date: 2011-05-14 22:22+0200\n"
+"POT-Creation-Date: 2011-06-07 15:34+0000\n"
+"PO-Revision-Date: 2011-06-07 22:44+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n"
"MIME-Version: 1.0\n"
@@ -48,7 +48,7 @@ msgid ""
"Character to add after nickname when using nick completion (tab) in group "
"chat."
msgstr ""
-"Signo uzenda post kromnomo, kiam kompletigo de kromnomo estas uzata en "
+"Signo uzenda post kromnomo dum uzado de plenumig-klavo (Tab) en "
"grupbabilejo."
#: ../data/org.gnome.Empathy.gschema.xml.in.h:3
@@ -56,41 +56,46 @@ msgid "Chat window theme"
msgstr "Babil-fenestra etoso"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:4
+#, fuzzy
+msgid "Chat window theme variant"
+msgstr "Babil-fenestra etoso"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:5
msgid ""
"Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
msgstr ""
"Listo disigita per komoj, kun uzendaj lingvoj por la kontrolilo (ekz. \"eo, "
"fr, nl\")."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:5
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:6
msgid "Compact contact list"
msgstr "Kompakta listo de kontaktuloj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:6
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:7
msgid "Connection managers should be used"
msgstr "Konekto-administrilo estu uzata"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:7
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
msgid "Contact list sort criterion"
msgstr "Kontaktlista ordigkriterio"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
msgid "Default directory to select an avatar image from"
msgstr "Defaŭlta dosierujo por elekto de uzantobildo"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:10
msgid "Disable popup notifications when away"
msgstr "Elŝalti ŝprucfenestro-sciigojn dum foresto"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:10
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:11
msgid "Disable sounds when away"
msgstr "Malaktivigi sonon kiam fora"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:11
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:12
msgid "Display incoming events in the status area"
msgstr "Montri envenantajn eventojn en la statusa areo"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:12
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:13
msgid ""
"Display incoming events in the status area. If false, present them to the "
"user immediately."
@@ -98,344 +103,351 @@ msgstr ""
"Montri envenantajn eventojn en la statusa areo. Se negativa, prezenti ilin "
"al la uzanto tuj."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:13
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:14
msgid "Empathy can publish the user's location"
msgstr "Empatio povas publikigi la lokon de la uzanto"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:14
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:15
msgid "Empathy can use the GPS to guess the location"
msgstr "Empatio rajtas uzi la GPS-on por diveni la lokon"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:15
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:16
msgid "Empathy can use the cellular network to guess the location"
msgstr ""
"Empatio rajtas uzi la reton de la portebla telefono por diveni la lokon"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:16
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:17
msgid "Empathy can use the network to guess the location"
msgstr "Empatio rajtas uzi la reton por diveni la lokon"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:17
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:18
msgid "Empathy default download folder"
msgstr "Defaŭlta elŝutujo de Empatio"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:18
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:19
msgid "Empathy has migrated butterfly logs"
msgstr "Empatio translokis papiliajn spurojn"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:19
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:20
msgid "Empathy should auto-away when idle"
msgstr "Kaŝi Empation aŭtomate kiam senokupe"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:20
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:21
msgid "Empathy should auto-connect on startup"
msgstr "Aŭtomata konekto dum la startigo de Empatio"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:21
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:22
msgid "Empathy should reduce the location's accuracy"
msgstr "Empatio devas redukti la ekzakton pri la loko"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:22
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:23
msgid "Empathy should use the avatar of the contact as the chat window icon"
msgstr ""
"Empatio devas uzi la uzantobildon de la kontaktulo kiel piktogramo de la "
"babilo-fenestro"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:23
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:24
msgid "Enable WebKit Developer Tools"
-msgstr "Enŝalti programistilojn de WebKit"
+msgstr "Enŝalti evoluigantilojn de WebKit"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:24
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:25
msgid "Enable popup notifications for new messages"
msgstr "Enŝalti ŝprucfenestro-sciigojn pri novaj mesaĝoj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:25
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:26
msgid "Enable spell checker"
msgstr "Enŝalti literumadan kontrolilon"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:26
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:27
msgid "Hide main window"
msgstr "Kaŝi ĉeffenestron"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:27
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:28
msgid "Hide the main window."
msgstr "Kaŝi la ĉefan fenestron."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:28
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:29
msgid "Nick completed character"
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:29
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:30
msgid "Open new chats in separate windows"
msgstr "Malfermi novajn babilejojn en apartaj fenestroj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:30
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:31
msgid "Path of the Adium theme to use"
msgstr "Pado de la uzenda etoso por Adium"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:31
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:32
msgid "Path of the Adium theme to use if the theme used for chat is Adium."
msgstr ""
"Vojo de la uzenda etoso por Adium se la etoso de la babilejo estas Adium."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:32
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:33
msgid "Play a sound for incoming messages"
msgstr "Ludi sonon pro alvenintaj mesaĝoj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:33
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:34
msgid "Play a sound for new conversations"
msgstr "Ludi sonon pro novaj babiloj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:34
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:35
msgid "Play a sound for outgoing messages"
msgstr "Ludi sonon pro elirantaj mesaĝoj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:35
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:36
msgid "Play a sound when a contact logs in"
msgstr "Ludi sonon kiam kontaktulo ensalutas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:36
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:37
msgid "Play a sound when a contact logs out"
msgstr "Ludi sonon kiam kontaktulo elsalutas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:37
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:38
msgid "Play a sound when we log in"
msgstr "Ludi sonon kiam ni ensalutas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:38
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:39
msgid "Play a sound when we log out"
msgstr "Ludi sonon kiam ni elsalutas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:39
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:40
msgid "Pop up notifications if the chat isn't focused"
msgstr "Ŝprucfenestri sciigojn se la babilejo ne estas fokusite"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:40
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:41
msgid "Pop up notifications when a contact logs in"
msgstr "Ŝprucfenestri sciigojn kiam kontaktulo ensalutas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:41
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
msgid "Pop up notifications when a contact logs out"
msgstr "Ŝprucfenestri sciigojn kiam kontaktulo elsalutas"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show Balance in contact list"
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show avatars"
msgstr "Montri avatarojn"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show contact list in rooms"
msgstr "Montri kontakto-liston per ĉambroj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show hint about closing the main window"
msgstr "Montri konsileton pri fermado de la ĉefa fenestro"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show offline contacts"
msgstr "Montri malkonektitulojn"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Show protocols"
msgstr "Montri protokolojn"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "Spell checking languages"
msgstr "Literum-kontrolataj lingvoj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The default folder to save file transfers in."
msgstr "La defaŭlta dosierujo por konservi ricevitajn dosierojn."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The last directory that an avatar image was chosen from."
msgstr "La lasta dosierujo el kie estis elektita avataron."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The position for the chat window side pane"
msgstr "La loko por la flanka babilfenestro"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The stored position (in pixels) of the chat window side pane."
msgstr "La memorigita loko (en bilderoj) de la flanka panelo de la babilejo."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "The theme that is used to display the conversation in chat windows."
msgstr ""
"La etoso, kiu estas uzata por montri la babilon en la babilejfenestroj."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#, fuzzy
+msgid ""
+"The theme variant that is used to display the conversation in chat windows."
+msgstr ""
+"La etoso, kiu estas uzata por montri la babilon en la babilejfenestroj."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use graphical smileys"
msgstr "Uzi grafikajn mienetojn"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Use notification sounds"
msgstr "Uzi atentig-sonojn"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Use theme for chat rooms"
msgstr "Uzi etoson por la babilo-ĉambroj"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr ""
"Ĉu Empatio rajtas publikigi la pozicion de la uzanto al ties kontaktuloj?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the GPS to guess the location."
msgstr "Ĉu Empatio rajtas uzi la GPS-on por diveni la pozicion?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr ""
"Ĉu Empatio rajtas uzi la reton de la portebla telefono por diveni la "
"pozicion?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy can use the network to guess the location."
msgstr "Ĉu Empatio rajtas uzi la reton por diveni la pozicion?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid "Whether Empathy has migrated butterfly logs."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr "Ĉu Empatio aŭtomate konektiĝu al via kontoj dum startigo?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr "Ĉu Empatio reduktu la ekzakton de la loko pro privatec-kialoj?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid "Whether to convert smileys into graphical images in conversations."
msgstr "Ĉu konverti miensimbolojn al grafikaj bildoj en konversacioj?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of events."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of incoming messages."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound to notify of new conversations."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound to notify of outgoing messages."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play a sound when logging into a network."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to play a sound when logging out of a network."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to play sound notifications when away or busy."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid "Whether to show a popup notification when a contact goes offline."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when a contact goes online."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid "Whether to show a popup notification when receiving a new message."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show account balances in the contact list."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show contacts that are offline in the contact list."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show popup notifications when away or busy."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show protocols for contacts in the contact list."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid "Whether to show the contact list in chat rooms."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to show the contact list in compact mode."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
msgstr ""
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:93
msgid "Whether to use the theme for chat rooms."
-msgstr ""
+msgstr "Ĉu uzi la etoson por babilejoj?"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:94
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -478,23 +490,23 @@ msgstr "Neniu kialo estis indikita"
#: ../libempathy/empathy-tp-file.c:390
msgid "The change in state was requested"
-msgstr ""
+msgstr "La ŝanĝo de la stato estis petite"
#: ../libempathy/empathy-tp-file.c:393
msgid "You canceled the file transfer"
-msgstr ""
+msgstr "Vi ĉesis la dosiertransigon"
#: ../libempathy/empathy-tp-file.c:396
msgid "The other participant canceled the file transfer"
-msgstr ""
+msgstr "La alia partoprenanto ĉesis la dosiertransigon"
#: ../libempathy/empathy-tp-file.c:399
msgid "Error while trying to transfer the file"
-msgstr ""
+msgstr "Eraro dum provi transigi la dosieron"
#: ../libempathy/empathy-tp-file.c:402
msgid "The other participant is unable to transfer the file"
-msgstr ""
+msgstr "La alia partoprenanto ne povas transigi la dosieron"
#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:384
msgid "Unknown reason"
@@ -556,7 +568,7 @@ msgstr "Neniu prezentigita atestilo"
#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
msgid "Certificate untrusted"
-msgstr "Malfida atestilo"
+msgstr "Atestilo nekonfida"
#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
msgid "Certificate expired"
@@ -588,11 +600,11 @@ msgstr "Ĉifrado ne estas diponebla"
#: ../libempathy/empathy-utils.c:418
msgid "Certificate is invalid"
-msgstr "Atestilo estas nevalida"
+msgstr "Atestilo estas nevalide"
#: ../libempathy/empathy-utils.c:420
msgid "Connection has been refused"
-msgstr ""
+msgstr "Konekto estas rifuzite"
#: ../libempathy/empathy-utils.c:422
msgid "Connection can't be established"
@@ -651,49 +663,49 @@ msgstr "Google Talk"
msgid "Facebook Chat"
msgstr "Facebook-babilejo"
-#: ../libempathy/empathy-time.c:100
+#: ../libempathy/empathy-time.c:88
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
msgstr[0] "Antaŭ %d sekundo"
msgstr[1] "Antaŭ %d sekundoj"
-#: ../libempathy/empathy-time.c:105
+#: ../libempathy/empathy-time.c:93
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "Antaŭ %d minuto"
msgstr[1] "Antaŭ %d minutoj"
-#: ../libempathy/empathy-time.c:110
+#: ../libempathy/empathy-time.c:98
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "Antaŭ %d horo"
msgstr[1] "Antaŭ %d horoj"
-#: ../libempathy/empathy-time.c:115
+#: ../libempathy/empathy-time.c:103
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "Antaŭ %d tago"
msgstr[1] "Antaŭ %d tagoj"
-#: ../libempathy/empathy-time.c:120
+#: ../libempathy/empathy-time.c:108
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "Antaŭ %d semajno"
msgstr[1] "Antaŭ %d semajnoj"
-#: ../libempathy/empathy-time.c:125
+#: ../libempathy/empathy-time.c:113
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "Antaŭ %d monato"
msgstr[1] "Antaŭ %d monatoj"
-#: ../libempathy/empathy-time.c:130
+#: ../libempathy/empathy-time.c:136
msgid "in the future"
msgstr "en la estonteco"
@@ -701,67 +713,67 @@ msgstr "en la estonteco"
msgid "All"
msgstr "Ĉiuj"
-#: ../libempathy-gtk/empathy-account-widget.c:678
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "Konto"
-#: ../libempathy-gtk/empathy-account-widget.c:679
+#: ../libempathy-gtk/empathy-account-widget.c:682
msgid "Password"
msgstr "Pasvorto"
-#: ../libempathy-gtk/empathy-account-widget.c:680
+#: ../libempathy-gtk/empathy-account-widget.c:683
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "Servilo"
-#: ../libempathy-gtk/empathy-account-widget.c:681
+#: ../libempathy-gtk/empathy-account-widget.c:684
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "Pordo"
-#: ../libempathy-gtk/empathy-account-widget.c:753
-#: ../libempathy-gtk/empathy-account-widget.c:810
+#: ../libempathy-gtk/empathy-account-widget.c:756
+#: ../libempathy-gtk/empathy-account-widget.c:813
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1151
+#: ../libempathy-gtk/empathy-account-widget.c:1154
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget.c:1157
+#: ../libempathy-gtk/empathy-account-widget.c:1160
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget.c:1177
+#: ../libempathy-gtk/empathy-account-widget.c:1180
msgid "Launch My Web Accounts"
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget.c:1515
+#: ../libempathy-gtk/empathy-account-widget.c:1518
msgid "Username:"
msgstr "Uzantonomo:"
-#: ../libempathy-gtk/empathy-account-widget.c:1833
+#: ../libempathy-gtk/empathy-account-widget.c:1836
msgid "A_pply"
msgstr "A_pliki"
-#: ../libempathy-gtk/empathy-account-widget.c:1863
+#: ../libempathy-gtk/empathy-account-widget.c:1866
msgid "L_og in"
msgstr "E_nsaluti"
-#: ../libempathy-gtk/empathy-account-widget.c:1937
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "This account already exists on the server"
msgstr "Tiu konto jam ekzistas sur la servilo"
-#: ../libempathy-gtk/empathy-account-widget.c:1940
+#: ../libempathy-gtk/empathy-account-widget.c:1943
msgid "Create a new account on the server"
msgstr "Krei novan konton sur la servilo"
-#: ../libempathy-gtk/empathy-account-widget.c:2132
+#: ../libempathy-gtk/empathy-account-widget.c:2135
msgid "Ca_ncel"
msgstr "_Nuligi"
@@ -770,25 +782,25 @@ msgstr "_Nuligi"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2410
+#: ../libempathy-gtk/empathy-account-widget.c:2413
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s ĉe %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2436
+#: ../libempathy-gtk/empathy-account-widget.c:2439
#, c-format
msgid "%s Account"
msgstr "%s Konto"
-#: ../libempathy-gtk/empathy-account-widget.c:2440
+#: ../libempathy-gtk/empathy-account-widget.c:2443
msgid "New account"
msgstr "Nova konto"
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:1
msgid "<b>Example:</b> MyScreenName"
-msgstr ""
+msgstr "<b>Ekzemplo:</b> MiaNomo"
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:2
#: ../libempathy-gtk/empathy-account-widget-generic.ui.h:1
@@ -807,7 +819,7 @@ msgstr "Altnivele"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:5
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:8
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:5
msgid "Pass_word:"
msgstr "Pas_vorto:"
@@ -817,9 +829,9 @@ msgstr "Pas_vorto:"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:6
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:5
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
msgid "Remember Password"
-msgstr "Memori pasvorton"
+msgstr "Memori la pasvorton"
#. remember password ticky box
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:5
@@ -827,7 +839,7 @@ msgstr "Memori pasvorton"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:7
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:11
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:6
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:6
#: ../libempathy-gtk/empathy-password-dialog.c:311
msgid "Remember password"
@@ -835,7 +847,7 @@ msgstr "Memori pasvorton"
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:6
msgid "Screen _Name:"
-msgstr ""
+msgstr "Ekran_nomo:"
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:7
msgid "What is your AIM password?"
@@ -843,7 +855,7 @@ msgstr "Kio estas via AIM-pasvorto?"
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:8
msgid "What is your AIM screen name?"
-msgstr ""
+msgstr "Kio estas via AIM-nomo?"
#: ../libempathy-gtk/empathy-account-widget-aim.ui.h:9
#: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:9
@@ -903,36 +915,36 @@ msgstr ""
msgid "What is your ICQ password?"
msgstr "Kio estas via ICQ-pasvorto?"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:183
-#: ../libempathy-gtk/empathy-account-widget-sip.c:216
+#: ../libempathy-gtk/empathy-account-widget-sip.c:184
+#: ../libempathy-gtk/empathy-account-widget-sip.c:217
msgid "Auto"
msgstr "Aŭtomate"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:186
+#: ../libempathy-gtk/empathy-account-widget-sip.c:187
msgid "UDP"
-msgstr ""
+msgstr "UDP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:189
+#: ../libempathy-gtk/empathy-account-widget-sip.c:190
msgid "TCP"
-msgstr ""
+msgstr "TCP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:192
+#: ../libempathy-gtk/empathy-account-widget-sip.c:193
msgid "TLS"
-msgstr ""
+msgstr "TLS"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:221
+#: ../libempathy-gtk/empathy-account-widget-sip.c:222
msgid "Register"
msgstr ""
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:226
+#: ../libempathy-gtk/empathy-account-widget-sip.c:227
msgid "Options"
msgstr "Agordoj"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:229
+#: ../libempathy-gtk/empathy-account-widget-sip.c:230
msgid "None"
msgstr "Neniu"
@@ -958,7 +970,7 @@ msgstr "Pasvorto:"
#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6
msgid "Quit message:"
-msgstr ""
+msgstr "Ĉeso-mesaĝo:"
#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7
msgid "Real name:"
@@ -970,23 +982,23 @@ msgstr "Serviloj"
#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9
msgid "What is your IRC nickname?"
-msgstr ""
+msgstr "Kio estas via kromnomon ĉe IRC?"
#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10
msgid "Which IRC network?"
-msgstr ""
+msgstr "Kiu IRC-reto?"
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:1
msgid "<b>Example:</b> user@gmail.com"
-msgstr ""
+msgstr "<b>Ekzemplo:</b> uzanto@gmail.com"
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:2
msgid "<b>Example:</b> user@jabber.org"
-msgstr ""
+msgstr "<b>Ekzemplo:</b> uzanto@jabber.org"
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:4
msgid "Encr_yption required (TLS/SSL)"
-msgstr ""
+msgstr "Ĉ_ifrado nepras (TLS/SSL)"
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:5
msgid "I_gnore SSL certificate errors"
@@ -1051,7 +1063,7 @@ msgstr ""
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:1
msgid "<b>Example:</b> user@hotmail.com"
-msgstr ""
+msgstr "<b>Ekzemplo:</b> uzanto@hotmail.com"
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:7
msgid "What is your Windows Live ID?"
@@ -1087,7 +1099,7 @@ msgstr ""
#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:1
msgid "<b>Example:</b> user@my.sip.server"
-msgstr ""
+msgstr "<b>Ekzemplo:</b> uzanto@my.sip.server"
#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:3
msgid "Authentication username:"
@@ -1102,58 +1114,63 @@ msgid "Discover the STUN server automatically"
msgstr ""
#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
+msgid "Ignore TLS Errors"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
msgid "Interval (seconds)"
msgstr "Intervalo (sekundoj)"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
msgid "Keep-Alive Options"
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
msgid "Loose Routing"
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
msgid "Mechanism:"
-msgstr "Meĥanismo:"
+msgstr "Mekanismo:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
msgid "Miscellaneous Options"
msgstr "Diversaj agordoj"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
msgid "NAT Traversal Options"
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
msgid "Port:"
msgstr "Pordo:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
msgid "Proxy Options"
msgstr "Prokuril-agordoj"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
msgid "STUN Server:"
msgstr "STUN-servilo:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-contact-widget.c:347
msgid "Server:"
msgstr "Servilo:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
msgid "Transport:"
msgstr "Transporto:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
msgid "What is your SIP account password?"
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
msgid "What is your SIP login ID?"
msgstr ""
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
msgid "_Username:"
msgstr "_Uzantonomo:"
@@ -1177,28 +1194,36 @@ msgstr "Yahoo!-I_D:"
msgid "_Room List locale:"
msgstr ""
-#: ../libempathy-gtk/empathy-avatar-chooser.c:448
-#: ../libempathy-gtk/empathy-avatar-chooser.c:524
+#: ../libempathy-gtk/empathy-avatar-chooser.c:474
+#: ../libempathy-gtk/empathy-avatar-chooser.c:559
msgid "Couldn't convert image"
msgstr ""
-#: ../libempathy-gtk/empathy-avatar-chooser.c:449
+#: ../libempathy-gtk/empathy-avatar-chooser.c:475
msgid "None of the accepted image formats are supported on your system"
msgstr ""
-#: ../libempathy-gtk/empathy-avatar-chooser.c:930
+#: ../libempathy-gtk/empathy-avatar-chooser.c:822
+msgid "Couldn't save pixbuf to png"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:938
msgid "Select Your Avatar Image"
msgstr ""
-#: ../libempathy-gtk/empathy-avatar-chooser.c:933
+#: ../libempathy-gtk/empathy-avatar-chooser.c:942
+msgid "Take a picture..."
+msgstr ""
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:945
msgid "No Image"
msgstr "Sen bildo"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:995
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1005
msgid "Images"
msgstr "Bildoj"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:999
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1009
msgid "All Files"
msgstr "Ĉiuj dosieroj"
@@ -1206,176 +1231,185 @@ msgstr "Ĉiuj dosieroj"
msgid "Click to enlarge"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:668
+#: ../libempathy-gtk/empathy-chat.c:695
msgid "Failed to open private chat"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:731
+#: ../libempathy-gtk/empathy-chat.c:756
msgid "Topic not supported on this conversation"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:737
+#: ../libempathy-gtk/empathy-chat.c:762
msgid "You are not allowed to change the topic"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:923
+#: ../libempathy-gtk/empathy-chat.c:966
+#, fuzzy, c-format
+msgid "“%s” is not a valid contact ID"
+msgstr "nevalida kontakto"
+
+#: ../libempathy-gtk/empathy-chat.c:1023
msgid "/clear: clear all messages from the current conversation"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:926
+#: ../libempathy-gtk/empathy-chat.c:1026
msgid "/topic <topic>: set the topic of the current conversation"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:929
+#: ../libempathy-gtk/empathy-chat.c:1029
msgid "/join <chat room ID>: join a new chat room"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:932
+#: ../libempathy-gtk/empathy-chat.c:1032
msgid "/j <chat room ID>: join a new chat room"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:936
+#: ../libempathy-gtk/empathy-chat.c:1036
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:940
+#: ../libempathy-gtk/empathy-chat.c:1040
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:943
+#: ../libempathy-gtk/empathy-chat.c:1043
msgid "/msg <contact ID> <message>: open a private chat"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:946
+#: ../libempathy-gtk/empathy-chat.c:1046
msgid "/nick <nickname>: change your nickname on the current server"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:949
+#: ../libempathy-gtk/empathy-chat.c:1049
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:952
+#: ../libempathy-gtk/empathy-chat.c:1052
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
"join a new chat room\""
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:957
+#: ../libempathy-gtk/empathy-chat.c:1057
+msgid "/whois <contact ID>: display information about a contact"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-chat.c:1060
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:967
+#: ../libempathy-gtk/empathy-chat.c:1070
#, c-format
msgid "Usage: %s"
msgstr "Uzo: %s"
-#: ../libempathy-gtk/empathy-chat.c:1006
+#: ../libempathy-gtk/empathy-chat.c:1109
msgid "Unknown command"
-msgstr "Ne konata komando"
+msgstr "Nekonata komando"
-#: ../libempathy-gtk/empathy-chat.c:1132
+#: ../libempathy-gtk/empathy-chat.c:1235
msgid "Unknown command; see /help for the available commands"
msgstr ""
#. translators: error used when user doesn't have enough credit on his
#. * account to send the message.
-#: ../libempathy-gtk/empathy-chat.c:1272
+#: ../libempathy-gtk/empathy-chat.c:1393
msgid "insufficient balance to send message"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:1274
+#: ../libempathy-gtk/empathy-chat.c:1395
msgid "not capable"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:1281
+#: ../libempathy-gtk/empathy-chat.c:1402
msgid "offline"
msgstr "nekonektite"
-#: ../libempathy-gtk/empathy-chat.c:1284
+#: ../libempathy-gtk/empathy-chat.c:1405
msgid "invalid contact"
msgstr "nevalida kontakto"
-#: ../libempathy-gtk/empathy-chat.c:1287
+#: ../libempathy-gtk/empathy-chat.c:1408
msgid "permission denied"
msgstr "aliro malpermesita"
-#: ../libempathy-gtk/empathy-chat.c:1290
+#: ../libempathy-gtk/empathy-chat.c:1411
msgid "too long message"
msgstr "tro longa mesaĝo"
-#: ../libempathy-gtk/empathy-chat.c:1293
+#: ../libempathy-gtk/empathy-chat.c:1414
msgid "not implemented"
msgstr "ne realigite"
-#: ../libempathy-gtk/empathy-chat.c:1297
+#: ../libempathy-gtk/empathy-chat.c:1418
msgid "unknown"
msgstr "nekonate"
-#: ../libempathy-gtk/empathy-chat.c:1303
+#: ../libempathy-gtk/empathy-chat.c:1424
#, c-format
msgid "Error sending message '%s': %s"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:1307
+#: ../libempathy-gtk/empathy-chat.c:1428
#, c-format
msgid "Error sending message: %s"
-msgstr ""
+msgstr "Eraro dum sendo de mesaĝo: %s"
-#: ../libempathy-gtk/empathy-chat.c:1368 ../src/empathy-chat-window.c:760
+#: ../libempathy-gtk/empathy-chat.c:1489 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "Temo:"
-#: ../libempathy-gtk/empathy-chat.c:1380
+#: ../libempathy-gtk/empathy-chat.c:1501
#, c-format
msgid "Topic set to: %s"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:1382
+#: ../libempathy-gtk/empathy-chat.c:1503
msgid "No topic defined"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:1889
+#: ../libempathy-gtk/empathy-chat.c:2010
msgid "(No Suggestions)"
msgstr "(Neniuj proponoj)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1957
+#: ../libempathy-gtk/empathy-chat.c:2078
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Aldoni '%s' al vortaro"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1994
+#: ../libempathy-gtk/empathy-chat.c:2115
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Aldoni '%s' al %s vortaro"
-#: ../libempathy-gtk/empathy-chat.c:2051
+#: ../libempathy-gtk/empathy-chat.c:2172
msgid "Insert Smiley"
msgstr "Enmeti miensimbolon"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2069
-#: ../libempathy-gtk/empathy-ui-utils.c:1808
+#: ../libempathy-gtk/empathy-chat.c:2190
+#: ../libempathy-gtk/empathy-ui-utils.c:1756
msgid "_Send"
msgstr "_Sendi"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2104
+#: ../libempathy-gtk/empathy-chat.c:2225
msgid "_Spelling Suggestions"
msgstr "_Literumadaj proponoj"
-#: ../libempathy-gtk/empathy-chat.c:2193
+#: ../libempathy-gtk/empathy-chat.c:2314
msgid "Failed to retrieve recent logs"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:2304
+#: ../libempathy-gtk/empathy-chat.c:2425
#, c-format
msgid "%s has disconnected"
msgstr "%s malkonektiĝis"
@@ -1383,12 +1417,12 @@ msgstr "%s malkonektiĝis"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2311
+#: ../libempathy-gtk/empathy-chat.c:2432
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%1$s estas forpelita de %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2314
+#: ../libempathy-gtk/empathy-chat.c:2435
#, c-format
msgid "%s was kicked"
msgstr "%s estas forpelita"
@@ -1396,17 +1430,17 @@ msgstr "%s estas forpelita"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2322
+#: ../libempathy-gtk/empathy-chat.c:2443
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%1$s estas ekzilita de %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2325
+#: ../libempathy-gtk/empathy-chat.c:2446
#, c-format
msgid "%s was banned"
msgstr "%s estas ekzilita"
-#: ../libempathy-gtk/empathy-chat.c:2329
+#: ../libempathy-gtk/empathy-chat.c:2450
#, c-format
msgid "%s has left the room"
msgstr "%s forlasis la ĉambron"
@@ -1416,69 +1450,69 @@ msgstr "%s forlasis la ĉambron"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2338
+#: ../libempathy-gtk/empathy-chat.c:2459
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2363
+#: ../libempathy-gtk/empathy-chat.c:2484
#, c-format
msgid "%s has joined the room"
msgstr "%s aliĝis la ĉambron"
-#: ../libempathy-gtk/empathy-chat.c:2388
+#: ../libempathy-gtk/empathy-chat.c:2509
#, c-format
msgid "%s is now known as %s"
msgstr "%s nun estas konata kiel %s"
-#: ../libempathy-gtk/empathy-chat.c:2527
+#: ../libempathy-gtk/empathy-chat.c:2648
#: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1117
+#: ../src/empathy-event-manager.c:1130
msgid "Disconnected"
msgstr "Malkonektite"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3185
+#: ../libempathy-gtk/empathy-chat.c:3316
msgid "Would you like to store this password?"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:3191
+#: ../libempathy-gtk/empathy-chat.c:3322
msgid "Remember"
msgstr "Memorigi"
-#: ../libempathy-gtk/empathy-chat.c:3201
+#: ../libempathy-gtk/empathy-chat.c:3332
msgid "Not now"
msgstr "Ne nun"
-#: ../libempathy-gtk/empathy-chat.c:3245
+#: ../libempathy-gtk/empathy-chat.c:3376
msgid "Retry"
msgstr "Reprovi"
-#: ../libempathy-gtk/empathy-chat.c:3249
+#: ../libempathy-gtk/empathy-chat.c:3380
msgid "Wrong password; please try again:"
msgstr ""
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3378
+#: ../libempathy-gtk/empathy-chat.c:3510
msgid "This room is protected by a password:"
msgstr ""
-#: ../libempathy-gtk/empathy-chat.c:3405
+#: ../libempathy-gtk/empathy-chat.c:3537
msgid "Join"
msgstr "Aliĝi"
-#: ../libempathy-gtk/empathy-chat.c:3604 ../src/empathy-event-manager.c:1138
+#: ../libempathy-gtk/empathy-chat.c:3738 ../src/empathy-event-manager.c:1151
msgid "Connected"
msgstr "Konektite"
-#: ../libempathy-gtk/empathy-chat.c:3659
+#: ../libempathy-gtk/empathy-chat.c:3793
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Konversacio"
#. Translators: this string is a something like
#. * "Escher Cat (SMS)"
-#: ../libempathy-gtk/empathy-chat.c:3664
+#: ../libempathy-gtk/empathy-chat.c:3798
#, c-format
msgid "%s (SMS)"
msgstr ""
@@ -1511,7 +1545,7 @@ msgstr ""
#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-individual-widget.c:1495
#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
#: ../src/empathy-chatrooms-window.ui.h:1
#: ../src/empathy-new-chatroom-dialog.ui.h:1
@@ -1520,13 +1554,13 @@ msgstr "Konto:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:1002
+#: ../libempathy-gtk/empathy-theme-adium.c:1264
msgid "_Copy Link Address"
msgstr "_Kopii la ligiladreson"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:1009
+#: ../libempathy-gtk/empathy-theme-adium.c:1271
msgid "_Open Link"
msgstr "Malfermi la ligil_on"
@@ -1551,24 +1585,24 @@ msgid "New Contact"
msgstr "Nova kontakto"
#: ../libempathy-gtk/empathy-contact-dialogs.c:533
-#: ../libempathy-gtk/empathy-individual-dialogs.c:199
+#: ../libempathy-gtk/empathy-individual-dialogs.c:200
#, c-format
msgid "Block %s?"
-msgstr ""
+msgstr "Ĉu bloki na %s?"
#: ../libempathy-gtk/empathy-contact-dialogs.c:538
-#: ../libempathy-gtk/empathy-individual-dialogs.c:247
+#: ../libempathy-gtk/empathy-individual-dialogs.c:252
#, c-format
msgid "Are you sure you want to block '%s' from contacting you again?"
msgstr ""
#: ../libempathy-gtk/empathy-contact-dialogs.c:543
-#: ../libempathy-gtk/empathy-individual-dialogs.c:269
+#: ../libempathy-gtk/empathy-individual-dialogs.c:274
msgid "_Block"
msgstr ""
#: ../libempathy-gtk/empathy-contact-dialogs.c:559
-#: ../libempathy-gtk/empathy-individual-dialogs.c:278
+#: ../libempathy-gtk/empathy-individual-dialogs.c:283
msgid "_Report this contact as abusive"
msgid_plural "_Report these contacts as abusive"
msgstr[0] ""
@@ -1594,34 +1628,34 @@ msgstr "Negrupite"
msgid "Favorite People"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2386
+#: ../libempathy-gtk/empathy-contact-list-view.c:1983
+#: ../libempathy-gtk/empathy-individual-view.c:2367
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2389
+#: ../libempathy-gtk/empathy-contact-list-view.c:1985
+#: ../libempathy-gtk/empathy-individual-view.c:2370
msgid "Removing group"
msgstr "Forigi grupon"
#. Remove
-#: ../libempathy-gtk/empathy-contact-list-view.c:2038
-#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2444
-#: ../libempathy-gtk/empathy-individual-view.c:2637
+#: ../libempathy-gtk/empathy-contact-list-view.c:2034
+#: ../libempathy-gtk/empathy-contact-list-view.c:2111
+#: ../libempathy-gtk/empathy-individual-view.c:2425
+#: ../libempathy-gtk/empathy-individual-view.c:2628
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "Fo_rigi"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2508
+#: ../libempathy-gtk/empathy-contact-list-view.c:2064
+#: ../libempathy-gtk/empathy-individual-view.c:2492
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2529
+#: ../libempathy-gtk/empathy-contact-list-view.c:2066
+#: ../libempathy-gtk/empathy-individual-view.c:2513
msgid "Removing contact"
msgstr ""
@@ -1635,48 +1669,48 @@ msgid "_Block Contact"
msgstr ""
#: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../libempathy-gtk/empathy-individual-menu.c:546
#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_Babilejo"
#: ../libempathy-gtk/empathy-contact-menu.c:358
-#: ../libempathy-gtk/empathy-individual-menu.c:625
+#: ../libempathy-gtk/empathy-individual-menu.c:635
msgctxt "menu item"
msgid "_Audio Call"
msgstr "_Sonalvoko"
#: ../libempathy-gtk/empathy-contact-menu.c:389
-#: ../libempathy-gtk/empathy-individual-menu.c:667
+#: ../libempathy-gtk/empathy-individual-menu.c:677
msgctxt "menu item"
msgid "_Video Call"
msgstr "_Videoalvoko"
#: ../libempathy-gtk/empathy-contact-menu.c:435
-#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../libempathy-gtk/empathy-individual-menu.c:720
#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr ""
#: ../libempathy-gtk/empathy-contact-menu.c:457
-#: ../libempathy-gtk/empathy-individual-menu.c:751
+#: ../libempathy-gtk/empathy-individual-menu.c:761
msgid "Send File"
msgstr "Sendi dosieron"
#: ../libempathy-gtk/empathy-contact-menu.c:480
-#: ../libempathy-gtk/empathy-individual-menu.c:793
+#: ../libempathy-gtk/empathy-individual-menu.c:803
msgid "Share My Desktop"
msgstr ""
#: ../libempathy-gtk/empathy-contact-menu.c:520
-#: ../libempathy-gtk/empathy-contact-widget.c:1751
-#: ../libempathy-gtk/empathy-individual-menu.c:828
-#: ../libempathy-gtk/empathy-individual-widget.c:1370
+#: ../libempathy-gtk/empathy-contact-widget.c:1890
+#: ../libempathy-gtk/empathy-individual-menu.c:838
+#: ../libempathy-gtk/empathy-individual-widget.c:1386
msgid "Favorite"
msgstr ""
#: ../libempathy-gtk/empathy-contact-menu.c:549
-#: ../libempathy-gtk/empathy-individual-menu.c:856
+#: ../libempathy-gtk/empathy-individual-menu.c:866
msgid "Infor_mation"
msgstr "Infor_mo"
@@ -1686,13 +1720,13 @@ msgid "_Edit"
msgstr "R_edakti"
#: ../libempathy-gtk/empathy-contact-menu.c:649
-#: ../libempathy-gtk/empathy-individual-menu.c:1037
-#: ../src/empathy-chat-window.c:986
+#: ../libempathy-gtk/empathy-individual-menu.c:1053
+#: ../src/empathy-chat-window.c:1010
msgid "Inviting you to this room"
msgstr ""
#: ../libempathy-gtk/empathy-contact-menu.c:680
-#: ../libempathy-gtk/empathy-individual-menu.c:1084
+#: ../libempathy-gtk/empathy-individual-menu.c:1099
msgid "_Invite to Chat Room"
msgstr ""
@@ -1717,178 +1751,202 @@ msgstr "Ne trovis kontaktojn"
msgid "Select a contact"
msgstr "Elekti kontakton"
-#: ../libempathy-gtk/empathy-contact-widget.c:295
+#: ../libempathy-gtk/empathy-contact-widget.c:336
#: ../libempathy-gtk/empathy-individual-widget.c:153
msgid "Full name:"
msgstr "Tuta nomo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:296
+#: ../libempathy-gtk/empathy-contact-widget.c:337
#: ../libempathy-gtk/empathy-individual-widget.c:154
msgid "Phone number:"
msgstr "Telefonnumero:"
-#: ../libempathy-gtk/empathy-contact-widget.c:297
+#: ../libempathy-gtk/empathy-contact-widget.c:338
#: ../libempathy-gtk/empathy-individual-widget.c:155
msgid "E-mail address:"
msgstr "Retpoŝtadreso:"
-#: ../libempathy-gtk/empathy-contact-widget.c:298
+#: ../libempathy-gtk/empathy-contact-widget.c:339
#: ../libempathy-gtk/empathy-individual-widget.c:156
msgid "Website:"
msgstr "Retpaĝaro:"
-#: ../libempathy-gtk/empathy-contact-widget.c:299
+#: ../libempathy-gtk/empathy-contact-widget.c:340
#: ../libempathy-gtk/empathy-individual-widget.c:157
msgid "Birthday:"
msgstr "Naskiĝtago:"
-#: ../libempathy-gtk/empathy-contact-widget.c:762
-#: ../libempathy-gtk/empathy-individual-widget.c:488
+#. Note to translators: this is the caption for a string of the form "5
+#. * minutes ago", and refers to the time since the contact last interacted
+#. * with their IM client.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:346
+msgid "Last seen:"
+msgstr ""
+
+#: ../libempathy-gtk/empathy-contact-widget.c:348
+msgid "Connected from:"
+msgstr "Konektite de:"
+
+#. FIXME: once Idle implements SimplePresence using this information, we can
+#. * and should bin this.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:353
+#, fuzzy
+msgid "Away message:"
+msgstr "Foresto-mesaĝo"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:606
+msgid "Channels:"
+msgstr "Kanaloj:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:901
+#: ../libempathy-gtk/empathy-individual-widget.c:495
msgid "Country ISO Code:"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:764
-#: ../libempathy-gtk/empathy-individual-widget.c:490
+#: ../libempathy-gtk/empathy-contact-widget.c:903
+#: ../libempathy-gtk/empathy-individual-widget.c:497
msgid "Country:"
msgstr "Lando:"
-#: ../libempathy-gtk/empathy-contact-widget.c:766
-#: ../libempathy-gtk/empathy-individual-widget.c:492
+#: ../libempathy-gtk/empathy-contact-widget.c:905
+#: ../libempathy-gtk/empathy-individual-widget.c:499
msgid "State:"
msgstr "Ŝtato:"
-#: ../libempathy-gtk/empathy-contact-widget.c:768
-#: ../libempathy-gtk/empathy-individual-widget.c:494
+#: ../libempathy-gtk/empathy-contact-widget.c:907
+#: ../libempathy-gtk/empathy-individual-widget.c:501
msgid "City:"
msgstr "Urbo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:770
-#: ../libempathy-gtk/empathy-individual-widget.c:496
+#: ../libempathy-gtk/empathy-contact-widget.c:909
+#: ../libempathy-gtk/empathy-individual-widget.c:503
msgid "Area:"
msgstr "Areo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:772
-#: ../libempathy-gtk/empathy-individual-widget.c:498
+#: ../libempathy-gtk/empathy-contact-widget.c:911
+#: ../libempathy-gtk/empathy-individual-widget.c:505
msgid "Postal Code:"
msgstr "Poŝtkodo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:774
-#: ../libempathy-gtk/empathy-individual-widget.c:500
+#: ../libempathy-gtk/empathy-contact-widget.c:913
+#: ../libempathy-gtk/empathy-individual-widget.c:507
msgid "Street:"
msgstr "Strato:"
-#: ../libempathy-gtk/empathy-contact-widget.c:776
-#: ../libempathy-gtk/empathy-individual-widget.c:502
+#: ../libempathy-gtk/empathy-contact-widget.c:915
+#: ../libempathy-gtk/empathy-individual-widget.c:509
msgid "Building:"
msgstr "Konstruaĵo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:778
-#: ../libempathy-gtk/empathy-individual-widget.c:504
+#: ../libempathy-gtk/empathy-contact-widget.c:917
+#: ../libempathy-gtk/empathy-individual-widget.c:511
msgid "Floor:"
msgstr "Etaĝo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:780
-#: ../libempathy-gtk/empathy-individual-widget.c:506
+#: ../libempathy-gtk/empathy-contact-widget.c:919
+#: ../libempathy-gtk/empathy-individual-widget.c:513
msgid "Room:"
msgstr "Ĉambro:"
-#: ../libempathy-gtk/empathy-contact-widget.c:782
-#: ../libempathy-gtk/empathy-individual-widget.c:508
+#: ../libempathy-gtk/empathy-contact-widget.c:921
+#: ../libempathy-gtk/empathy-individual-widget.c:515
msgid "Text:"
msgstr "Teksto:"
-#: ../libempathy-gtk/empathy-contact-widget.c:784
-#: ../libempathy-gtk/empathy-individual-widget.c:510
+#: ../libempathy-gtk/empathy-contact-widget.c:923
+#: ../libempathy-gtk/empathy-individual-widget.c:517
msgid "Description:"
msgstr "Priskribo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:786
-#: ../libempathy-gtk/empathy-individual-widget.c:512
+#: ../libempathy-gtk/empathy-contact-widget.c:925
+#: ../libempathy-gtk/empathy-individual-widget.c:519
msgid "URI:"
msgstr "URI:"
-#: ../libempathy-gtk/empathy-contact-widget.c:788
-#: ../libempathy-gtk/empathy-individual-widget.c:514
+#: ../libempathy-gtk/empathy-contact-widget.c:927
+#: ../libempathy-gtk/empathy-individual-widget.c:521
msgid "Accuracy Level:"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:790
-#: ../libempathy-gtk/empathy-individual-widget.c:516
+#: ../libempathy-gtk/empathy-contact-widget.c:929
+#: ../libempathy-gtk/empathy-individual-widget.c:523
msgid "Error:"
msgstr "Eraro:"
-#: ../libempathy-gtk/empathy-contact-widget.c:792
-#: ../libempathy-gtk/empathy-individual-widget.c:518
+#: ../libempathy-gtk/empathy-contact-widget.c:931
+#: ../libempathy-gtk/empathy-individual-widget.c:525
msgid "Vertical Error (meters):"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:794
-#: ../libempathy-gtk/empathy-individual-widget.c:520
+#: ../libempathy-gtk/empathy-contact-widget.c:933
+#: ../libempathy-gtk/empathy-individual-widget.c:527
msgid "Horizontal Error (meters):"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:796
-#: ../libempathy-gtk/empathy-individual-widget.c:522
+#: ../libempathy-gtk/empathy-contact-widget.c:935
+#: ../libempathy-gtk/empathy-individual-widget.c:529
msgid "Speed:"
msgstr "Rapido:"
-#: ../libempathy-gtk/empathy-contact-widget.c:798
-#: ../libempathy-gtk/empathy-individual-widget.c:524
+#: ../libempathy-gtk/empathy-contact-widget.c:937
+#: ../libempathy-gtk/empathy-individual-widget.c:531
msgid "Bearing:"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:800
-#: ../libempathy-gtk/empathy-individual-widget.c:526
+#: ../libempathy-gtk/empathy-contact-widget.c:939
+#: ../libempathy-gtk/empathy-individual-widget.c:533
msgid "Climb Speed:"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:802
-#: ../libempathy-gtk/empathy-individual-widget.c:528
+#: ../libempathy-gtk/empathy-contact-widget.c:941
+#: ../libempathy-gtk/empathy-individual-widget.c:535
msgid "Last Updated on:"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:804
-#: ../libempathy-gtk/empathy-individual-widget.c:530
+#: ../libempathy-gtk/empathy-contact-widget.c:943
+#: ../libempathy-gtk/empathy-individual-widget.c:537
msgid "Longitude:"
msgstr "Longitudo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:806
-#: ../libempathy-gtk/empathy-individual-widget.c:532
+#: ../libempathy-gtk/empathy-contact-widget.c:945
+#: ../libempathy-gtk/empathy-individual-widget.c:539
msgid "Latitude:"
msgstr "Latitudo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:808
-#: ../libempathy-gtk/empathy-individual-widget.c:534
+#: ../libempathy-gtk/empathy-contact-widget.c:947
+#: ../libempathy-gtk/empathy-individual-widget.c:541
msgid "Altitude:"
msgstr "Altitudo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:861
-#: ../libempathy-gtk/empathy-contact-widget.c:876
-#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:631
+#: ../libempathy-gtk/empathy-contact-widget.c:1000
+#: ../libempathy-gtk/empathy-contact-widget.c:1015
+#: ../libempathy-gtk/empathy-individual-widget.c:629
+#: ../libempathy-gtk/empathy-individual-widget.c:644
#: ../src/empathy-preferences.ui.h:12
msgid "Location"
msgstr "Loko"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:878
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-contact-widget.c:1017
+#: ../libempathy-gtk/empathy-individual-widget.c:646
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:930
-#: ../libempathy-gtk/empathy-individual-widget.c:682
+#: ../libempathy-gtk/empathy-contact-widget.c:1069
+#: ../libempathy-gtk/empathy-individual-widget.c:695
msgid "%B %e, %Y at %R UTC"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:1012
-#: ../libempathy-gtk/empathy-individual-widget.c:917
+#: ../libempathy-gtk/empathy-contact-widget.c:1151
+#: ../libempathy-gtk/empathy-individual-widget.c:931
msgid "Save Avatar"
msgstr ""
-#: ../libempathy-gtk/empathy-contact-widget.c:1068
-#: ../libempathy-gtk/empathy-individual-widget.c:975
+#: ../libempathy-gtk/empathy-contact-widget.c:1207
+#: ../libempathy-gtk/empathy-individual-widget.c:989
msgid "Unable to save avatar"
msgstr ""
@@ -1898,7 +1956,7 @@ msgstr ""
#. Alias
#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1305
+#: ../libempathy-gtk/empathy-individual-widget.c:1321
msgid "Alias:"
msgstr "Kromnomo:"
@@ -1919,7 +1977,7 @@ msgstr "Kontaktdetaloj"
#. Identifier to connect to Instant Messaging network
#. Translators: Identifier to connect to Instant Messaging network
#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1509
+#: ../libempathy-gtk/empathy-individual-widget.c:1525
msgid "Identifier:"
msgstr "Identigilo:"
@@ -1936,97 +1994,97 @@ msgstr "Mastruma sistemo:"
msgid "Version:"
msgstr "Versio:"
-#: ../libempathy-gtk/empathy-groups-widget.c:332
+#: ../libempathy-gtk/empathy-groups-widget.c:333
msgid "Groups"
msgstr "Grupoj"
-#: ../libempathy-gtk/empathy-groups-widget.c:344
+#: ../libempathy-gtk/empathy-groups-widget.c:345
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-groups-widget.c:363
+#: ../libempathy-gtk/empathy-groups-widget.c:364
msgid "_Add Group"
msgstr "_Aldoni grupon"
-#: ../libempathy-gtk/empathy-groups-widget.c:398
+#: ../libempathy-gtk/empathy-groups-widget.c:399
msgctxt "verb in a column header displaying group names"
msgid "Select"
msgstr "Elekti"
-#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1770
+#: ../libempathy-gtk/empathy-groups-widget.c:409
+#: ../src/empathy-main-window.c:1751
msgid "Group"
msgstr "Grupo"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:252
+#: ../libempathy-gtk/empathy-individual-dialogs.c:257
msgid "The following identity will be blocked:"
msgid_plural "The following identities will be blocked:"
msgstr[0] ""
msgstr[1] ""
-#: ../libempathy-gtk/empathy-individual-dialogs.c:259
+#: ../libempathy-gtk/empathy-individual-dialogs.c:264
msgid "The following identity can not be blocked:"
msgid_plural "The following identities can not be blocked:"
msgstr[0] ""
msgstr[1] ""
#. Translators: the heading at the top of the Information dialogue
-#: ../libempathy-gtk/empathy-individual-information-dialog.c:281
+#: ../libempathy-gtk/empathy-individual-information-dialog.c:288
msgid "Linked Contacts"
msgstr ""
-#: ../libempathy-gtk/empathy-individual-linker.c:354
+#: ../libempathy-gtk/empathy-individual-linker.c:370
msgid "Select contacts to link"
msgstr ""
-#: ../libempathy-gtk/empathy-individual-linker.c:428
+#: ../libempathy-gtk/empathy-individual-linker.c:444
msgid "New contact preview"
msgstr ""
-#: ../libempathy-gtk/empathy-individual-linker.c:472
+#: ../libempathy-gtk/empathy-individual-linker.c:488
msgid "Contacts selected in the list on the left will be linked together."
msgstr ""
#. Translators: this is used in the context menu for a contact. The first
#. * parameter is a contact ID (e.g. foo@jabber.org) and the second is one
#. * of the user's account IDs (e.g. me@hotmail.com).
-#: ../libempathy-gtk/empathy-individual-menu.c:131
+#: ../libempathy-gtk/empathy-individual-menu.c:136
#, c-format
msgid "%s (%s)"
msgstr "%s (%s)"
#. add an SMS button
-#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-individual-menu.c:592
#: ../libempathy-gtk/empathy-new-message-dialog.c:248
msgid "_SMS"
msgstr ""
-#: ../libempathy-gtk/empathy-individual-menu.c:904
+#: ../libempathy-gtk/empathy-individual-menu.c:914
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "R_edakti"
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:930
+#: ../libempathy-gtk/empathy-individual-menu.c:940
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr ""
-#: ../libempathy-gtk/empathy-individual-view.c:2351
+#: ../libempathy-gtk/empathy-individual-view.c:2332
msgid "Delete and _Block"
msgstr ""
-#: ../libempathy-gtk/empathy-individual-view.c:2517
+#: ../libempathy-gtk/empathy-individual-view.c:2501
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
"remove all the contacts which make up this linked contact."
msgstr ""
-#: ../libempathy-gtk/empathy-individual-widget.c:1650
+#: ../libempathy-gtk/empathy-individual-widget.c:1672
#, c-format
msgid "Linked contact containing %u contact"
msgid_plural "Linked contacts containing %u contacts"
@@ -2224,7 +2282,7 @@ msgstr "Nova %s konto"
#: ../libempathy-gtk/empathy-search-bar.ui.h:3
msgid "Find:"
-msgstr "Trovi:"
+msgstr "Serĉi:"
#: ../libempathy-gtk/empathy-search-bar.ui.h:4
msgid "Match case"
@@ -2283,30 +2341,31 @@ msgid "Edit Custom Messages"
msgstr "Redakti kutimajn mesaĝojn"
#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:1
+#, fuzzy
msgid "Save _New Status Message"
-msgstr ""
+msgstr "Redakti kutimajn mesaĝoj"
#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:2
msgid "Saved Status Messages"
msgstr "Konservitaj stat-mesaĝoj"
-#: ../libempathy-gtk/empathy-theme-adium.c:1468
+#: ../libempathy-gtk/empathy-theme-adium.c:1782
msgid "Normal"
msgstr "Normale"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:75
msgid "Classic"
msgstr "Klasike"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:76
msgid "Simple"
msgstr "Simple"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:77
msgid "Clean"
msgstr "Vake"
-#: ../libempathy-gtk/empathy-theme-manager.c:71
+#: ../libempathy-gtk/empathy-theme-manager.c:78
msgid "Blue"
msgstr "Bluo"
@@ -2344,16 +2403,18 @@ msgid ""
msgstr ""
#: ../libempathy-gtk/empathy-tls-dialog.c:181
+#, fuzzy
msgid "The certificate is cryptographically weak."
-msgstr ""
+msgstr "La atestilo eksvalidiĝis"
#: ../libempathy-gtk/empathy-tls-dialog.c:184
msgid "The certificate length exceeds verifiable limits."
msgstr ""
#: ../libempathy-gtk/empathy-tls-dialog.c:188
+#, fuzzy
msgid "The certificate is malformed."
-msgstr ""
+msgstr "La atestilo eksvalidiĝis"
#: ../libempathy-gtk/empathy-tls-dialog.c:206
#, c-format
@@ -2381,26 +2442,26 @@ msgstr ""
msgid "Certificate Details"
msgstr ""
-#: ../libempathy-gtk/empathy-ui-utils.c:1705
+#: ../libempathy-gtk/empathy-ui-utils.c:1653
msgid "Unable to open URI"
msgstr ""
-#: ../libempathy-gtk/empathy-ui-utils.c:1800
+#: ../libempathy-gtk/empathy-ui-utils.c:1748
msgid "Select a file"
msgstr "Elekti dosieron"
-#: ../libempathy-gtk/empathy-ui-utils.c:1872
+#: ../libempathy-gtk/empathy-ui-utils.c:1820
msgid "Insufficient free space to save file"
msgstr ""
-#: ../libempathy-gtk/empathy-ui-utils.c:1880
+#: ../libempathy-gtk/empathy-ui-utils.c:1828
#, c-format
msgid ""
"%s of free space are required to save this file, but only %s is available. "
"Please choose another location."
msgstr ""
-#: ../libempathy-gtk/empathy-ui-utils.c:1924
+#: ../libempathy-gtk/empathy-ui-utils.c:1872
#, c-format
msgid "Incoming file from %s"
msgstr ""
@@ -2588,23 +2649,23 @@ msgstr "Neniu erarmesaĝo"
msgid "Instant Message (Empathy)"
msgstr "Tujmesaĝo (Empatio)"
-#: ../src/empathy.c:308
+#: ../src/empathy.c:307
msgid "Don't connect on startup"
msgstr "Ne konekti dum lanĉo"
-#: ../src/empathy.c:312
+#: ../src/empathy.c:311
msgid "Don't display the contact list or any other dialogs on startup"
msgstr ""
-#: ../src/empathy.c:320
+#: ../src/empathy.c:319
msgid "- Empathy IM Client"
msgstr "- Tujmesaĝilo 'Empatio'"
-#: ../src/empathy.c:499
+#: ../src/empathy.c:498
msgid "Error contacting the Account Manager"
msgstr ""
-#: ../src/empathy.c:501
+#: ../src/empathy.c:500
#, c-format
msgid ""
"There was an error while trying to connect to the Telepathy Account Manager. "
@@ -2620,10 +2681,10 @@ msgid ""
"Foundation; either version 2 of the License, or (at your option) any later "
"version."
msgstr ""
-"Empatio estas libera programaro; vi povas disvastigi ĝin kaj/aŭ modifi ĝin "
-"sub la kondiĉoj de la Ĝenerala Publika Permesilo de GNU kiel publikita de la "
-"Libera Programara Fonduso; ĉu versio 2 de la permesilo, ĉu (laŭ via volo) iu "
-"ajn posta versio."
+"Empatio estas libera programaro; vi povas distribui kaj/aŭ modifi ĝin sub la "
+"kondiĉoj de la Ĝenerala Publika Permesilo de GNU eldonite de la 'Free "
+"Software Foundation'; aŭ en la 2a versio de la permesilo aŭ (laŭ via volo) "
+"en iu sekva versio."
#: ../src/empathy-about-dialog.c:85
msgid ""
@@ -2642,9 +2703,9 @@ msgid ""
"Empathy; if not, write to the Free Software Foundation, Inc., 51 Franklin "
"Street, Fifth Floor, Boston, MA 02110-130159 USA"
msgstr ""
-"Vi devintus kopion de la Ĝenerala Publika Permesilo de GNU kun Empatio; se "
-"ne, skribu al Free Software Foundation, Inc., 51 Franklin Street, Fifth "
-"Floor, Boston, MA 02110-1301 USA"
+"Vi devintus ricevi kopion de la Ĝenerala Publika Permesilo de GNU kun "
+"Empatio; se ne, skribu al Free Software Foundation, Inc., 51 Franklin "
+"Street, Fifth Floor, Boston, MA 02110-1301 USA"
#: ../src/empathy-about-dialog.c:107
msgid "An Instant Messaging client for GNOME"
@@ -3328,90 +3389,90 @@ msgstr "Aŭtomata konekto"
msgid "Manage Favorite Rooms"
msgstr ""
-#: ../src/empathy-event-manager.c:505
+#: ../src/empathy-event-manager.c:510
msgid "Incoming video call"
-msgstr ""
+msgstr "Venanta videotelefon-voko"
-#: ../src/empathy-event-manager.c:505
+#: ../src/empathy-event-manager.c:510
msgid "Incoming call"
msgstr "Venanta telefonvoko"
-#: ../src/empathy-event-manager.c:509
+#: ../src/empathy-event-manager.c:514
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr ""
-#: ../src/empathy-event-manager.c:510
+#: ../src/empathy-event-manager.c:515
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr ""
-#: ../src/empathy-event-manager.c:513 ../src/empathy-event-manager.c:662
+#: ../src/empathy-event-manager.c:518 ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming call from %s"
msgstr ""
-#: ../src/empathy-event-manager.c:538
+#: ../src/empathy-event-manager.c:543
msgid "_Reject"
msgstr "_Rifuzi"
-#: ../src/empathy-event-manager.c:544
+#: ../src/empathy-event-manager.c:549
msgid "_Answer"
msgstr "_Respondo"
-#: ../src/empathy-event-manager.c:662
+#: ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming video call from %s"
msgstr ""
-#: ../src/empathy-event-manager.c:735
+#: ../src/empathy-event-manager.c:740
msgid "Room invitation"
msgstr ""
-#: ../src/empathy-event-manager.c:737
+#: ../src/empathy-event-manager.c:742
#, c-format
msgid "Invitation to join %s"
msgstr ""
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:749
#, c-format
msgid "%s is inviting you to join %s"
msgstr ""
-#: ../src/empathy-event-manager.c:752
+#: ../src/empathy-event-manager.c:757
msgid "_Decline"
msgstr ""
-#: ../src/empathy-event-manager.c:757
+#: ../src/empathy-event-manager.c:762
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Aliĝi"
-#: ../src/empathy-event-manager.c:784
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "%s invited you to join %s"
msgstr ""
-#: ../src/empathy-event-manager.c:790
+#: ../src/empathy-event-manager.c:795
#, c-format
msgid "You have been invited to join %s"
msgstr ""
-#: ../src/empathy-event-manager.c:841
+#: ../src/empathy-event-manager.c:846
#, c-format
msgid "Incoming file transfer from %s"
msgstr ""
-#: ../src/empathy-event-manager.c:1011 ../src/empathy-main-window.c:377
+#: ../src/empathy-event-manager.c:1024 ../src/empathy-main-window.c:375
msgid "Password required"
msgstr "Pasvorto bezonatas"
-#: ../src/empathy-event-manager.c:1067
+#: ../src/empathy-event-manager.c:1080
#, c-format
msgid "%s would like permission to see when you are online"
msgstr ""
-#: ../src/empathy-event-manager.c:1071
+#: ../src/empathy-event-manager.c:1084
#, c-format
msgid ""
"\n"
@@ -3554,55 +3615,55 @@ msgstr "Protokolo"
msgid "Source"
msgstr "Fonto"
-#: ../src/empathy-main-window.c:394
+#: ../src/empathy-main-window.c:392
msgid "Provide Password"
msgstr ""
-#: ../src/empathy-main-window.c:400
+#: ../src/empathy-main-window.c:398
msgid "Disconnect"
msgstr "Malkonekti"
-#: ../src/empathy-main-window.c:540
+#: ../src/empathy-main-window.c:538
msgid "No match found"
msgstr "Neniu kongruaĵo troviĝis"
-#: ../src/empathy-main-window.c:695
+#: ../src/empathy-main-window.c:693
msgid "Reconnect"
msgstr "Rekonekti"
-#: ../src/empathy-main-window.c:701
+#: ../src/empathy-main-window.c:699
msgid "Edit Account"
msgstr "Redakti konton"
-#: ../src/empathy-main-window.c:707
+#: ../src/empathy-main-window.c:705
msgid "Close"
msgstr "Fermi"
#. Translators: this string will be something like:
#. * Top up My Account ($1.23)..."
-#: ../src/empathy-main-window.c:849
+#: ../src/empathy-main-window.c:844
#, c-format
msgid "Top up %s (%s)..."
msgstr ""
-#: ../src/empathy-main-window.c:924
+#: ../src/empathy-main-window.c:891
msgid "Top up account credit"
msgstr ""
#. top up button
-#: ../src/empathy-main-window.c:999
+#: ../src/empathy-main-window.c:966
msgid "Top Up..."
msgstr ""
-#: ../src/empathy-main-window.c:1752
+#: ../src/empathy-main-window.c:1733
msgid "Contact"
msgstr "Kontakto"
-#: ../src/empathy-main-window.c:2101
+#: ../src/empathy-main-window.c:2085
msgid "Contact List"
msgstr "Kontaktlisto"
-#: ../src/empathy-main-window.c:2219
+#: ../src/empathy-main-window.c:2203
msgid "Show and edit accounts"
msgstr "Montri kaj redakti kontojn"
@@ -3757,79 +3818,79 @@ msgstr "Ĉambrolisto"
msgid "_Room:"
msgstr "Ĉamb_ro:"
-#: ../src/empathy-preferences.c:147
+#: ../src/empathy-preferences.c:156
msgid "Message received"
msgstr "Ricevis mesaĝon"
-#: ../src/empathy-preferences.c:148
+#: ../src/empathy-preferences.c:157
msgid "Message sent"
msgstr "Sendis mesaĝon"
-#: ../src/empathy-preferences.c:149
+#: ../src/empathy-preferences.c:158
msgid "New conversation"
msgstr "Nova konversacio"
-#: ../src/empathy-preferences.c:150
+#: ../src/empathy-preferences.c:159
msgid "Contact goes online"
msgstr ""
-#: ../src/empathy-preferences.c:151
+#: ../src/empathy-preferences.c:160
msgid "Contact goes offline"
msgstr ""
-#: ../src/empathy-preferences.c:152
+#: ../src/empathy-preferences.c:161
msgid "Account connected"
msgstr ""
-#: ../src/empathy-preferences.c:153
+#: ../src/empathy-preferences.c:162
msgid "Account disconnected"
msgstr ""
-#: ../src/empathy-preferences.c:450
+#: ../src/empathy-preferences.c:459
msgid "Language"
msgstr "Lingvo"
#. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:700
+#: ../src/empathy-preferences.c:709
msgid "Juliet"
msgstr ""
#. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:707
+#: ../src/empathy-preferences.c:716
msgid "Romeo"
msgstr ""
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:713
+#: ../src/empathy-preferences.c:722
msgid "O Romeo, Romeo, wherefore art thou Romeo?"
msgstr ""
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:716
+#: ../src/empathy-preferences.c:725
msgid "Deny thy father and refuse thy name;"
msgstr ""
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:719
+#: ../src/empathy-preferences.c:728
msgid "Or if thou wilt not, be but sworn my love"
msgstr ""
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:722
+#: ../src/empathy-preferences.c:731
msgid "And I'll no longer be a Capulet."
msgstr ""
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:725
+#: ../src/empathy-preferences.c:734
msgid "Shall I hear more, or shall I speak at this?"
msgstr ""
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:728
+#: ../src/empathy-preferences.c:737
msgid "Juliet has disconnected"
-msgstr ""
+msgstr "Juliet nekonektiĝis"
-#: ../src/empathy-preferences.c:962
+#: ../src/empathy-preferences.c:1131
msgid "Preferences"
msgstr "Agordoj"
@@ -3927,13 +3988,13 @@ msgid ""
msgstr ""
#: ../src/empathy-preferences.ui.h:24
-msgid "Theme Variant:"
-msgstr ""
-
-#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "Etosoj"
+#: ../src/empathy-preferences.ui.h:25
+msgid "Variant:"
+msgstr "Variaĵo:"
+
#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr ""
@@ -4045,16 +4106,16 @@ msgid ""
"extension."
msgstr ""
-#: ../src/empathy-invite-participant-dialog.c:34
-#: ../src/empathy-invite-participant-dialog.c:48
+#: ../src/empathy-invite-participant-dialog.c:429
+#: ../src/empathy-invite-participant-dialog.c:477
msgid "Invite Participant"
msgstr ""
-#: ../src/empathy-invite-participant-dialog.c:35
+#: ../src/empathy-invite-participant-dialog.c:430
msgid "Choose a contact to invite into the conversation:"
msgstr ""
-#: ../src/empathy-invite-participant-dialog.c:45
+#: ../src/empathy-invite-participant-dialog.c:473
msgid "Invite"
msgstr "Inviti"
@@ -4115,7 +4176,7 @@ msgstr "Akcepti"
#: ../src/empathy-notifications-approver.c:226
msgid "Provide"
-msgstr ""
+msgstr "Provizi"
#: ../src/empathy-call-observer.c:130
#, c-format
@@ -4134,8 +4195,12 @@ msgstr "_Uskleca kongruo"
#~ msgid "Empathy has asked about importing accounts"
#~ msgstr "Empatio demandis pri importi kontojn"
-#~ msgid "%s is now online."
-#~ msgstr "%s estas nun konektite."
+#~ msgid ""
+#~ "Whether Empathy has asked about importing accounts from other programs."
+#~ msgstr "Ĉu Empatio demandu pri enporto de kontoj de aliaj progamoj?"
+
+#~ msgid "Your software is too old"
+#~ msgstr "Via programaro estas tro maljuna"
#~ msgid "All accounts"
#~ msgstr "Ĉiuj kontoj"
@@ -4166,3 +4231,6 @@ msgstr "_Uskleca kongruo"
#~ msgid "%s is now offline."
#~ msgstr "%s estas nun nekonektite."
+
+#~ msgid "%s is now online."
+#~ msgstr "%s estas nun konektite."
diff --git a/po/gl.po b/po/gl.po
index c4f5cc02d..ed3e88bdc 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: empathy-master-po-gl-57278_.merged\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-09 12:52+0200\n"
-"PO-Revision-Date: 2011-05-09 12:57+0200\n"
+"POT-Creation-Date: 2011-06-06 00:23+0200\n"
+"PO-Revision-Date: 2011-06-06 00:24+0200\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\n"
@@ -809,49 +809,49 @@ msgstr "Google Talk"
msgid "Facebook Chat"
msgstr "Chat de Facebook"
-#: ../libempathy/empathy-time.c:100
+#: ../libempathy/empathy-time.c:88
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
msgstr[0] "Hai %d segundo"
msgstr[1] "Hai %d segundos"
-#: ../libempathy/empathy-time.c:105
+#: ../libempathy/empathy-time.c:93
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "Hai %d minuto"
msgstr[1] "Hai %d minutos"
-#: ../libempathy/empathy-time.c:110
+#: ../libempathy/empathy-time.c:98
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "Hai %d hora"
msgstr[1] "Hai %d horas"
-#: ../libempathy/empathy-time.c:115
+#: ../libempathy/empathy-time.c:103
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "Hai %d día"
msgstr[1] "Hai %d días"
-#: ../libempathy/empathy-time.c:120
+#: ../libempathy/empathy-time.c:108
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "Hai %d semana"
msgstr[1] "Hai %d semanas"
-#: ../libempathy/empathy-time.c:125
+#: ../libempathy/empathy-time.c:113
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "Hai %d mes"
msgstr[1] "Hai %d meses"
-#: ../libempathy/empathy-time.c:130
+#: ../libempathy/empathy-time.c:136
msgid "in the future"
msgstr "no futuro"
@@ -859,68 +859,68 @@ msgstr "no futuro"
msgid "All"
msgstr "Todas"
-#: ../libempathy-gtk/empathy-account-widget.c:678
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "Conta"
-#: ../libempathy-gtk/empathy-account-widget.c:679
+#: ../libempathy-gtk/empathy-account-widget.c:682
msgid "Password"
msgstr "Contrasinal"
-#: ../libempathy-gtk/empathy-account-widget.c:680
+#: ../libempathy-gtk/empathy-account-widget.c:683
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "Servidor"
-#: ../libempathy-gtk/empathy-account-widget.c:681
+#: ../libempathy-gtk/empathy-account-widget.c:684
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "Porto"
-#: ../libempathy-gtk/empathy-account-widget.c:753
-#: ../libempathy-gtk/empathy-account-widget.c:810
+#: ../libempathy-gtk/empathy-account-widget.c:756
+#: ../libempathy-gtk/empathy-account-widget.c:813
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1151
+#: ../libempathy-gtk/empathy-account-widget.c:1154
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr "A conta %s edítase mediante My Web Accounts."
-#: ../libempathy-gtk/empathy-account-widget.c:1157
+#: ../libempathy-gtk/empathy-account-widget.c:1160
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr "Non é posíbel editar a conta %s en Empathy."
# rever
-#: ../libempathy-gtk/empathy-account-widget.c:1177
+#: ../libempathy-gtk/empathy-account-widget.c:1180
msgid "Launch My Web Accounts"
msgstr "Iniciar My Web Accounts"
-#: ../libempathy-gtk/empathy-account-widget.c:1515
+#: ../libempathy-gtk/empathy-account-widget.c:1518
msgid "Username:"
msgstr "Nome de _usuario:"
-#: ../libempathy-gtk/empathy-account-widget.c:1833
+#: ../libempathy-gtk/empathy-account-widget.c:1836
msgid "A_pply"
msgstr "A_plicar"
-#: ../libempathy-gtk/empathy-account-widget.c:1863
+#: ../libempathy-gtk/empathy-account-widget.c:1866
msgid "L_og in"
msgstr "Iniciar sesi_ón"
-#: ../libempathy-gtk/empathy-account-widget.c:1937
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "This account already exists on the server"
msgstr "Esta conta xa existe no servidor"
-#: ../libempathy-gtk/empathy-account-widget.c:1940
+#: ../libempathy-gtk/empathy-account-widget.c:1943
msgid "Create a new account on the server"
msgstr "Crear unha nova conta no servidor"
-#: ../libempathy-gtk/empathy-account-widget.c:2132
+#: ../libempathy-gtk/empathy-account-widget.c:2135
msgid "Ca_ncel"
msgstr "Ca_ncelar"
@@ -930,20 +930,20 @@ msgstr "Ca_ncelar"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2410
+#: ../libempathy-gtk/empathy-account-widget.c:2413
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s sobre %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2436
+#: ../libempathy-gtk/empathy-account-widget.c:2439
#, c-format
msgid "%s Account"
msgstr "Conta %s"
# rever
-#: ../libempathy-gtk/empathy-account-widget.c:2440
+#: ../libempathy-gtk/empathy-account-widget.c:2443
msgid "New account"
msgstr "Conta nova"
@@ -968,7 +968,7 @@ msgstr "Avanzado"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:5
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:8
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:5
msgid "Pass_word:"
msgstr "Con_trasinal:"
@@ -978,7 +978,7 @@ msgstr "Con_trasinal:"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:6
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:5
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
msgid "Remember Password"
msgstr "Lembrar o contrasinal"
@@ -988,7 +988,7 @@ msgstr "Lembrar o contrasinal"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:7
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:11
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:6
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:6
#: ../libempathy-gtk/empathy-password-dialog.c:311
msgid "Remember password"
@@ -1067,36 +1067,36 @@ msgstr "Cal é o seu UIN para ICQ?"
msgid "What is your ICQ password?"
msgstr "Cal é o seu contrasinal pra ICQ?"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:183
-#: ../libempathy-gtk/empathy-account-widget-sip.c:216
+#: ../libempathy-gtk/empathy-account-widget-sip.c:184
+#: ../libempathy-gtk/empathy-account-widget-sip.c:217
msgid "Auto"
msgstr "Auto"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:186
+#: ../libempathy-gtk/empathy-account-widget-sip.c:187
msgid "UDP"
msgstr "UDP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:189
+#: ../libempathy-gtk/empathy-account-widget-sip.c:190
msgid "TCP"
msgstr "TCP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:192
+#: ../libempathy-gtk/empathy-account-widget-sip.c:193
msgid "TLS"
msgstr "TLS"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:221
+#: ../libempathy-gtk/empathy-account-widget-sip.c:222
msgid "Register"
msgstr "Rexistrar"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:226
+#: ../libempathy-gtk/empathy-account-widget-sip.c:227
msgid "Options"
msgstr "Opcións"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:229
+#: ../libempathy-gtk/empathy-account-widget-sip.c:230
msgid "None"
msgstr "Ningún"
@@ -1277,58 +1277,63 @@ msgid "Discover the STUN server automatically"
msgstr "Descubrir o servidor STUN automaticamente"
#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
+msgid "Ignore TLS Errors"
+msgstr "Ignorar os erros TLS"
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
msgid "Interval (seconds)"
msgstr "Intervalo (segundos)"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
msgid "Keep-Alive Options"
msgstr "Opcións de Keep-Alive"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
msgid "Loose Routing"
msgstr "Enrutado aberto"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
msgid "Mechanism:"
msgstr "Mecanismo:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
msgid "Miscellaneous Options"
msgstr "Opcións varias"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
msgid "NAT Traversal Options"
msgstr "Opcións do NAT transversal"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
msgid "Port:"
msgstr "Porto:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
msgid "Proxy Options"
msgstr "Opcións do proxy"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
msgid "STUN Server:"
msgstr "Servidor STUN:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-contact-widget.c:347
msgid "Server:"
msgstr "Servidor:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
msgid "Transport:"
msgstr "Transporte:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
msgid "What is your SIP account password?"
msgstr "Cal é o contrasinal da súa conta SIP?"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
msgid "What is your SIP login ID?"
msgstr "Cal é o seu ID de inicio de sesión SIP?"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
msgid "_Username:"
msgstr "Nome de _usuario:"
@@ -1356,30 +1361,38 @@ msgid "_Room List locale:"
msgstr "Configuración da lista de _salas:"
# rever
-#: ../libempathy-gtk/empathy-avatar-chooser.c:448
-#: ../libempathy-gtk/empathy-avatar-chooser.c:524
+#: ../libempathy-gtk/empathy-avatar-chooser.c:474
+#: ../libempathy-gtk/empathy-avatar-chooser.c:559
msgid "Couldn't convert image"
msgstr "Non foi posíbel converter a imaxe"
# rever
-#: ../libempathy-gtk/empathy-avatar-chooser.c:449
+#: ../libempathy-gtk/empathy-avatar-chooser.c:475
msgid "None of the accepted image formats are supported on your system"
msgstr "Ningún dos formatos aceptados de imaxe é compatíbel co seu sistema"
+#: ../libempathy-gtk/empathy-avatar-chooser.c:822
+msgid "Couldn't save pixbuf to png"
+msgstr "Non foi posíbel gardar o pixbuf a png"
+
# rever
-#: ../libempathy-gtk/empathy-avatar-chooser.c:930
+#: ../libempathy-gtk/empathy-avatar-chooser.c:938
msgid "Select Your Avatar Image"
msgstr "Seleccione a súa imaxe de avatar"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:933
+#: ../libempathy-gtk/empathy-avatar-chooser.c:942
+msgid "Take a picture..."
+msgstr "Obter unha foto..."
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:945
msgid "No Image"
msgstr "Sen imaxe"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:995
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1005
msgid "Images"
msgstr "Imaxes"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:999
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1009
msgid "All Files"
msgstr "Todos os ficheiros"
@@ -1388,35 +1401,40 @@ msgstr "Todos os ficheiros"
msgid "Click to enlarge"
msgstr "Prema para ampliar"
-#: ../libempathy-gtk/empathy-chat.c:668
+#: ../libempathy-gtk/empathy-chat.c:695
msgid "Failed to open private chat"
msgstr "Produciuse un fallo ao abrir un chat privado"
-#: ../libempathy-gtk/empathy-chat.c:733
+#: ../libempathy-gtk/empathy-chat.c:756
msgid "Topic not supported on this conversation"
msgstr "Ese asunto non se admite nesta conversación"
-#: ../libempathy-gtk/empathy-chat.c:739
+#: ../libempathy-gtk/empathy-chat.c:762
msgid "You are not allowed to change the topic"
msgstr "Non se lle permite cambiar o asunto"
-#: ../libempathy-gtk/empathy-chat.c:948
+#: ../libempathy-gtk/empathy-chat.c:966
+#, c-format
+msgid "“%s” is not a valid contact ID"
+msgstr "«%s» non é un ID de contacto válido"
+
+#: ../libempathy-gtk/empathy-chat.c:1023
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear, limpa todas as mensaxes da conversa actual"
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:1026
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <topic>, estabelece o asunto da conversa actual"
-#: ../libempathy-gtk/empathy-chat.c:954
+#: ../libempathy-gtk/empathy-chat.c:1029
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <chatroom id>, unirse a unha nova sala de conversa"
-#: ../libempathy-gtk/empathy-chat.c:957
+#: ../libempathy-gtk/empathy-chat.c:1032
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <chatroom id>, unirse a unha nova sala de conversa"
-#: ../libempathy-gtk/empathy-chat.c:962
+#: ../libempathy-gtk/empathy-chat.c:1036
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
@@ -1424,23 +1442,23 @@ msgstr ""
"/part [<chat room ID>] [<reason>]: abandonar a sala de char, por omisión a "
"actual"
-#: ../libempathy-gtk/empathy-chat.c:967
+#: ../libempathy-gtk/empathy-chat.c:1040
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <contact id> [<message>], abre unha conversa privada"
-#: ../libempathy-gtk/empathy-chat.c:970
+#: ../libempathy-gtk/empathy-chat.c:1043
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <contact id> <message>, abre unha conversa privada"
-#: ../libempathy-gtk/empathy-chat.c:973
+#: ../libempathy-gtk/empathy-chat.c:1046
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <nickname>, cambia o seu nome de usuario no servidor actual"
-#: ../libempathy-gtk/empathy-chat.c:976
+#: ../libempathy-gtk/empathy-chat.c:1049
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <message>, envía unha mensaxe ACTION á conversa actual"
-#: ../libempathy-gtk/empathy-chat.c:979
+#: ../libempathy-gtk/empathy-chat.c:1052
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1450,7 +1468,11 @@ msgstr ""
"unha mensaxe que comeza cunha '/'. Por exemplo: \"/say /join úsase para "
"unirse a unha nova sala de conversa\""
-#: ../libempathy-gtk/empathy-chat.c:984
+#: ../libempathy-gtk/empathy-chat.c:1057
+msgid "/whois <contact ID>: display information about a contact"
+msgstr "/whois <ID do contacto>: mostra información sobre un contacto"
+
+#: ../libempathy-gtk/empathy-chat.c:1060
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1458,119 +1480,119 @@ msgstr ""
"/help [<command>], mostra todas as ordes admitidas. Se <command> está "
"definida, mostra o seu uso."
-#: ../libempathy-gtk/empathy-chat.c:994
+#: ../libempathy-gtk/empathy-chat.c:1070
#, c-format
msgid "Usage: %s"
msgstr "Uso: %s"
-#: ../libempathy-gtk/empathy-chat.c:1033
+#: ../libempathy-gtk/empathy-chat.c:1109
msgid "Unknown command"
msgstr "Orde descoñecida"
-#: ../libempathy-gtk/empathy-chat.c:1159
+#: ../libempathy-gtk/empathy-chat.c:1235
msgid "Unknown command; see /help for the available commands"
msgstr "Orde descoñecida, vexa /help para obter as ordes dispoñíbeis"
#. translators: error used when user doesn't have enough credit on his
#. * account to send the message.
-#: ../libempathy-gtk/empathy-chat.c:1299
+#: ../libempathy-gtk/empathy-chat.c:1393
msgid "insufficient balance to send message"
msgstr "non ten balance suficiente para enviar a mensaxe"
-#: ../libempathy-gtk/empathy-chat.c:1301
+#: ../libempathy-gtk/empathy-chat.c:1395
msgid "not capable"
msgstr "non é posíbel"
-#: ../libempathy-gtk/empathy-chat.c:1308
+#: ../libempathy-gtk/empathy-chat.c:1402
msgid "offline"
msgstr "desconectado"
-#: ../libempathy-gtk/empathy-chat.c:1311
+#: ../libempathy-gtk/empathy-chat.c:1405
msgid "invalid contact"
msgstr "contacto incorrecto"
-#: ../libempathy-gtk/empathy-chat.c:1314
+#: ../libempathy-gtk/empathy-chat.c:1408
msgid "permission denied"
msgstr "permiso denegado"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1317
+#: ../libempathy-gtk/empathy-chat.c:1411
msgid "too long message"
msgstr "a mensaxe é demasiado longa"
-#: ../libempathy-gtk/empathy-chat.c:1320
+#: ../libempathy-gtk/empathy-chat.c:1414
msgid "not implemented"
msgstr "non implementado"
-#: ../libempathy-gtk/empathy-chat.c:1324
+#: ../libempathy-gtk/empathy-chat.c:1418
msgid "unknown"
msgstr "descoñecido"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1330
+#: ../libempathy-gtk/empathy-chat.c:1424
#, c-format
msgid "Error sending message '%s': %s"
msgstr "Produciuse un erro ao enviar a mensaxe '%s': %s"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1334
+#: ../libempathy-gtk/empathy-chat.c:1428
#, c-format
msgid "Error sending message: %s"
msgstr "Produciuse un erro ao enviar a mensaxe: %s"
-#: ../libempathy-gtk/empathy-chat.c:1395 ../src/empathy-chat-window.c:760
+#: ../libempathy-gtk/empathy-chat.c:1489 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "Asunto:"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1407
+#: ../libempathy-gtk/empathy-chat.c:1501
#, c-format
msgid "Topic set to: %s"
msgstr "Cambiouse o asunto a: %s"
# rever
-#: ../libempathy-gtk/empathy-chat.c:1409
+#: ../libempathy-gtk/empathy-chat.c:1503
msgid "No topic defined"
msgstr "Non se definiu un asunto"
-#: ../libempathy-gtk/empathy-chat.c:1916
+#: ../libempathy-gtk/empathy-chat.c:2010
msgid "(No Suggestions)"
msgstr "(Sen suxestións)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1984
+#: ../libempathy-gtk/empathy-chat.c:2078
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Engadir «%s» ao dicionario"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:2021
+#: ../libempathy-gtk/empathy-chat.c:2115
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Engadir «%s» ao dicionario de %s"
-#: ../libempathy-gtk/empathy-chat.c:2078
+#: ../libempathy-gtk/empathy-chat.c:2172
msgid "Insert Smiley"
msgstr "Inserir unha emoticona"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2096
-#: ../libempathy-gtk/empathy-ui-utils.c:1808
+#: ../libempathy-gtk/empathy-chat.c:2190
+#: ../libempathy-gtk/empathy-ui-utils.c:1756
msgid "_Send"
msgstr "_Enviar"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2131
+#: ../libempathy-gtk/empathy-chat.c:2225
msgid "_Spelling Suggestions"
msgstr "Suxestións de _ortografía"
-#: ../libempathy-gtk/empathy-chat.c:2220
+#: ../libempathy-gtk/empathy-chat.c:2314
msgid "Failed to retrieve recent logs"
msgstr "Produciuse un fallo ao obter os rexistros recentes"
# rever
-#: ../libempathy-gtk/empathy-chat.c:2331
+#: ../libempathy-gtk/empathy-chat.c:2425
#, c-format
msgid "%s has disconnected"
msgstr "%s desconectou"
@@ -1578,12 +1600,12 @@ msgstr "%s desconectou"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2338
+#: ../libempathy-gtk/empathy-chat.c:2432
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%1$s foi expulsado por %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2341
+#: ../libempathy-gtk/empathy-chat.c:2435
#, c-format
msgid "%s was kicked"
msgstr "%s foi expulsado"
@@ -1591,17 +1613,17 @@ msgstr "%s foi expulsado"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2349
+#: ../libempathy-gtk/empathy-chat.c:2443
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%1$s foi vetado por %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2352
+#: ../libempathy-gtk/empathy-chat.c:2446
#, c-format
msgid "%s was banned"
msgstr "%s foi excluído"
-#: ../libempathy-gtk/empathy-chat.c:2356
+#: ../libempathy-gtk/empathy-chat.c:2450
#, c-format
msgid "%s has left the room"
msgstr "%s deixou a sala"
@@ -1611,70 +1633,70 @@ msgstr "%s deixou a sala"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2365
+#: ../libempathy-gtk/empathy-chat.c:2459
#, c-format
msgid " (%s)"
msgstr " (%s)"
# rever
-#: ../libempathy-gtk/empathy-chat.c:2390
+#: ../libempathy-gtk/empathy-chat.c:2484
#, c-format
msgid "%s has joined the room"
msgstr "%s uniuse á sala"
-#: ../libempathy-gtk/empathy-chat.c:2415
+#: ../libempathy-gtk/empathy-chat.c:2509
#, c-format
msgid "%s is now known as %s"
msgstr "%s agora é coñecido como %s"
-#: ../libempathy-gtk/empathy-chat.c:2554
+#: ../libempathy-gtk/empathy-chat.c:2648
#: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1116
+#: ../src/empathy-event-manager.c:1130
msgid "Disconnected"
msgstr "Desconectado"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3202
+#: ../libempathy-gtk/empathy-chat.c:3316
msgid "Would you like to store this password?"
msgstr "Desexa gardar este contrasinal?"
-#: ../libempathy-gtk/empathy-chat.c:3208
+#: ../libempathy-gtk/empathy-chat.c:3322
msgid "Remember"
msgstr "Lembrar"
-#: ../libempathy-gtk/empathy-chat.c:3218
+#: ../libempathy-gtk/empathy-chat.c:3332
msgid "Not now"
msgstr "Agora non"
-#: ../libempathy-gtk/empathy-chat.c:3262
+#: ../libempathy-gtk/empathy-chat.c:3376
msgid "Retry"
msgstr "Reintentar"
-#: ../libempathy-gtk/empathy-chat.c:3266
+#: ../libempathy-gtk/empathy-chat.c:3380
msgid "Wrong password; please try again:"
msgstr "O contrasinal é incorrecto, ténteo de novo:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3383
+#: ../libempathy-gtk/empathy-chat.c:3510
msgid "This room is protected by a password:"
msgstr "Esta sala está protexida por un contrasinal:"
-#: ../libempathy-gtk/empathy-chat.c:3410
+#: ../libempathy-gtk/empathy-chat.c:3537
msgid "Join"
msgstr "Unirse"
-#: ../libempathy-gtk/empathy-chat.c:3602 ../src/empathy-event-manager.c:1137
+#: ../libempathy-gtk/empathy-chat.c:3738 ../src/empathy-event-manager.c:1151
msgid "Connected"
msgstr "Conectado"
-#: ../libempathy-gtk/empathy-chat.c:3657
+#: ../libempathy-gtk/empathy-chat.c:3793
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Conversa"
#. Translators: this string is a something like
#. * "Escher Cat (SMS)"
-#: ../libempathy-gtk/empathy-chat.c:3662
+#: ../libempathy-gtk/empathy-chat.c:3798
#, c-format
msgid "%s (SMS)"
msgstr "%s (SMS)"
@@ -1717,13 +1739,13 @@ msgstr "Conta:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:996
+#: ../libempathy-gtk/empathy-theme-adium.c:1245
msgid "_Copy Link Address"
msgstr "_Copiar o enderezo da ligazón"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:1003
+#: ../libempathy-gtk/empathy-theme-adium.c:1252
msgid "_Open Link"
msgstr "_Abrir a ligazón"
@@ -1796,36 +1818,36 @@ msgid "Favorite People"
msgstr "Persoas favoritas"
# rever
-#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2386
+#: ../libempathy-gtk/empathy-contact-list-view.c:1983
+#: ../libempathy-gtk/empathy-individual-view.c:2357
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "Está seguro de que quere eliminar o grupo '%s'?"
# rever
-#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2389
+#: ../libempathy-gtk/empathy-contact-list-view.c:1985
+#: ../libempathy-gtk/empathy-individual-view.c:2360
msgid "Removing group"
msgstr "Eliminando o grupo"
#. Remove
-#: ../libempathy-gtk/empathy-contact-list-view.c:2038
-#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2444
-#: ../libempathy-gtk/empathy-individual-view.c:2637
+#: ../libempathy-gtk/empathy-contact-list-view.c:2034
+#: ../libempathy-gtk/empathy-contact-list-view.c:2111
+#: ../libempathy-gtk/empathy-individual-view.c:2415
+#: ../libempathy-gtk/empathy-individual-view.c:2612
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "_Eliminar"
# rever
-#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2508
+#: ../libempathy-gtk/empathy-contact-list-view.c:2064
+#: ../libempathy-gtk/empathy-individual-view.c:2479
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "Está seguro de quere eliminar o contacto '%s'?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2529
+#: ../libempathy-gtk/empathy-contact-list-view.c:2066
+#: ../libempathy-gtk/empathy-individual-view.c:2500
msgid "Removing contact"
msgstr "Eliminando o contacto"
@@ -1846,62 +1868,62 @@ msgstr "_Bloquear contacto"
msgid "_Chat"
msgstr "_Conversa"
-#: ../libempathy-gtk/empathy-contact-menu.c:359
+#: ../libempathy-gtk/empathy-contact-menu.c:358
#: ../libempathy-gtk/empathy-individual-menu.c:625
msgctxt "menu item"
msgid "_Audio Call"
msgstr "_Audiochamada"
-#: ../libempathy-gtk/empathy-contact-menu.c:390
+#: ../libempathy-gtk/empathy-contact-menu.c:389
#: ../libempathy-gtk/empathy-individual-menu.c:667
msgctxt "menu item"
msgid "_Video Call"
msgstr "_Videochamada"
# rever
-#: ../libempathy-gtk/empathy-contact-menu.c:436
+#: ../libempathy-gtk/empathy-contact-menu.c:435
#: ../libempathy-gtk/empathy-individual-menu.c:710
#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "Conversas _previas"
-#: ../libempathy-gtk/empathy-contact-menu.c:458
+#: ../libempathy-gtk/empathy-contact-menu.c:457
#: ../libempathy-gtk/empathy-individual-menu.c:751
msgid "Send File"
msgstr "Enviar ficheiro"
-#: ../libempathy-gtk/empathy-contact-menu.c:481
+#: ../libempathy-gtk/empathy-contact-menu.c:480
#: ../libempathy-gtk/empathy-individual-menu.c:793
msgid "Share My Desktop"
msgstr "Compartir o meu escritorio"
# rever
-#: ../libempathy-gtk/empathy-contact-menu.c:521
-#: ../libempathy-gtk/empathy-contact-widget.c:1751
+#: ../libempathy-gtk/empathy-contact-menu.c:520
+#: ../libempathy-gtk/empathy-contact-widget.c:1890
#: ../libempathy-gtk/empathy-individual-menu.c:828
#: ../libempathy-gtk/empathy-individual-widget.c:1370
msgid "Favorite"
msgstr "Favorito"
-#: ../libempathy-gtk/empathy-contact-menu.c:550
+#: ../libempathy-gtk/empathy-contact-menu.c:549
#: ../libempathy-gtk/empathy-individual-menu.c:856
msgid "Infor_mation"
msgstr "Infor_mación"
-#: ../libempathy-gtk/empathy-contact-menu.c:596
+#: ../libempathy-gtk/empathy-contact-menu.c:595
msgctxt "Edit contact (contextual menu)"
msgid "_Edit"
msgstr "_Editar"
# rever
-#: ../libempathy-gtk/empathy-contact-menu.c:650
+#: ../libempathy-gtk/empathy-contact-menu.c:649
#: ../libempathy-gtk/empathy-individual-menu.c:1037
-#: ../src/empathy-chat-window.c:986
+#: ../src/empathy-chat-window.c:1010
msgid "Inviting you to this room"
msgstr "Invítao a vostede a esta sala"
# rever
-#: ../libempathy-gtk/empathy-contact-menu.c:681
+#: ../libempathy-gtk/empathy-contact-menu.c:680
#: ../libempathy-gtk/empathy-individual-menu.c:1084
msgid "_Invite to Chat Room"
msgstr "Conv_idar a sala de conversa"
@@ -1931,154 +1953,178 @@ msgstr "Non se atoparon contactos"
msgid "Select a contact"
msgstr "Seleccione un contacto"
-#: ../libempathy-gtk/empathy-contact-widget.c:295
+#: ../libempathy-gtk/empathy-contact-widget.c:336
#: ../libempathy-gtk/empathy-individual-widget.c:153
msgid "Full name:"
msgstr "Nome completo:"
-#: ../libempathy-gtk/empathy-contact-widget.c:296
+#: ../libempathy-gtk/empathy-contact-widget.c:337
#: ../libempathy-gtk/empathy-individual-widget.c:154
msgid "Phone number:"
msgstr "Número de teléfono:"
-#: ../libempathy-gtk/empathy-contact-widget.c:297
+#: ../libempathy-gtk/empathy-contact-widget.c:338
#: ../libempathy-gtk/empathy-individual-widget.c:155
msgid "E-mail address:"
msgstr "Enderezo de correo electrónico:"
-#: ../libempathy-gtk/empathy-contact-widget.c:298
+#: ../libempathy-gtk/empathy-contact-widget.c:339
#: ../libempathy-gtk/empathy-individual-widget.c:156
msgid "Website:"
msgstr "Sitio web:"
-#: ../libempathy-gtk/empathy-contact-widget.c:299
+#: ../libempathy-gtk/empathy-contact-widget.c:340
#: ../libempathy-gtk/empathy-individual-widget.c:157
msgid "Birthday:"
msgstr "Aniversario:"
-#: ../libempathy-gtk/empathy-contact-widget.c:762
+#. Note to translators: this is the caption for a string of the form "5
+#. * minutes ago", and refers to the time since the contact last interacted
+#. * with their IM client.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:346
+msgid "Last seen:"
+msgstr "Última actividade:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:348
+msgid "Connected from:"
+msgstr "Conectado desde:"
+
+# rever
+#. FIXME: once Idle implements SimplePresence using this information, we can
+#. * and should bin this.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:353
+msgid "Away message:"
+msgstr "Mensaxe de ausencia:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:606
+msgid "Channels:"
+msgstr "Canles:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:901
#: ../libempathy-gtk/empathy-individual-widget.c:488
msgid "Country ISO Code:"
msgstr "Código ISO de país:"
-#: ../libempathy-gtk/empathy-contact-widget.c:764
+#: ../libempathy-gtk/empathy-contact-widget.c:903
#: ../libempathy-gtk/empathy-individual-widget.c:490
msgid "Country:"
msgstr "País:"
-#: ../libempathy-gtk/empathy-contact-widget.c:766
+#: ../libempathy-gtk/empathy-contact-widget.c:905
#: ../libempathy-gtk/empathy-individual-widget.c:492
msgid "State:"
msgstr "Rexión:"
-#: ../libempathy-gtk/empathy-contact-widget.c:768
+#: ../libempathy-gtk/empathy-contact-widget.c:907
#: ../libempathy-gtk/empathy-individual-widget.c:494
msgid "City:"
msgstr "Cidade:"
-#: ../libempathy-gtk/empathy-contact-widget.c:770
+#: ../libempathy-gtk/empathy-contact-widget.c:909
#: ../libempathy-gtk/empathy-individual-widget.c:496
msgid "Area:"
msgstr "Área:"
-#: ../libempathy-gtk/empathy-contact-widget.c:772
+#: ../libempathy-gtk/empathy-contact-widget.c:911
#: ../libempathy-gtk/empathy-individual-widget.c:498
msgid "Postal Code:"
msgstr "Código postal:"
-#: ../libempathy-gtk/empathy-contact-widget.c:774
+#: ../libempathy-gtk/empathy-contact-widget.c:913
#: ../libempathy-gtk/empathy-individual-widget.c:500
msgid "Street:"
msgstr "Rúa:"
-#: ../libempathy-gtk/empathy-contact-widget.c:776
+#: ../libempathy-gtk/empathy-contact-widget.c:915
#: ../libempathy-gtk/empathy-individual-widget.c:502
msgid "Building:"
msgstr "Edificio:"
# rever
-#: ../libempathy-gtk/empathy-contact-widget.c:778
+#: ../libempathy-gtk/empathy-contact-widget.c:917
#: ../libempathy-gtk/empathy-individual-widget.c:504
msgid "Floor:"
msgstr "_Andar:"
-#: ../libempathy-gtk/empathy-contact-widget.c:780
+#: ../libempathy-gtk/empathy-contact-widget.c:919
#: ../libempathy-gtk/empathy-individual-widget.c:506
msgid "Room:"
msgstr "Sala:"
-#: ../libempathy-gtk/empathy-contact-widget.c:782
+#: ../libempathy-gtk/empathy-contact-widget.c:921
#: ../libempathy-gtk/empathy-individual-widget.c:508
msgid "Text:"
msgstr "Texto:"
-#: ../libempathy-gtk/empathy-contact-widget.c:784
+#: ../libempathy-gtk/empathy-contact-widget.c:923
#: ../libempathy-gtk/empathy-individual-widget.c:510
msgid "Description:"
msgstr "Descrición:"
-#: ../libempathy-gtk/empathy-contact-widget.c:786
+#: ../libempathy-gtk/empathy-contact-widget.c:925
#: ../libempathy-gtk/empathy-individual-widget.c:512
msgid "URI:"
msgstr "URI:"
-#: ../libempathy-gtk/empathy-contact-widget.c:788
+#: ../libempathy-gtk/empathy-contact-widget.c:927
#: ../libempathy-gtk/empathy-individual-widget.c:514
msgid "Accuracy Level:"
msgstr "Nivel de precisión:"
-#: ../libempathy-gtk/empathy-contact-widget.c:790
+#: ../libempathy-gtk/empathy-contact-widget.c:929
#: ../libempathy-gtk/empathy-individual-widget.c:516
msgid "Error:"
msgstr "Erro:"
-#: ../libempathy-gtk/empathy-contact-widget.c:792
+#: ../libempathy-gtk/empathy-contact-widget.c:931
#: ../libempathy-gtk/empathy-individual-widget.c:518
msgid "Vertical Error (meters):"
msgstr "Erro vertical (metros):"
-#: ../libempathy-gtk/empathy-contact-widget.c:794
+#: ../libempathy-gtk/empathy-contact-widget.c:933
#: ../libempathy-gtk/empathy-individual-widget.c:520
msgid "Horizontal Error (meters):"
msgstr "Erro horizontal (metros):"
-#: ../libempathy-gtk/empathy-contact-widget.c:796
+#: ../libempathy-gtk/empathy-contact-widget.c:935
#: ../libempathy-gtk/empathy-individual-widget.c:522
msgid "Speed:"
msgstr "Velocidade:"
-#: ../libempathy-gtk/empathy-contact-widget.c:798
+#: ../libempathy-gtk/empathy-contact-widget.c:937
#: ../libempathy-gtk/empathy-individual-widget.c:524
msgid "Bearing:"
msgstr "Orientación:"
-#: ../libempathy-gtk/empathy-contact-widget.c:800
+#: ../libempathy-gtk/empathy-contact-widget.c:939
#: ../libempathy-gtk/empathy-individual-widget.c:526
msgid "Climb Speed:"
msgstr "Velocidade de incremento:"
-#: ../libempathy-gtk/empathy-contact-widget.c:802
+#: ../libempathy-gtk/empathy-contact-widget.c:941
#: ../libempathy-gtk/empathy-individual-widget.c:528
msgid "Last Updated on:"
msgstr "Última actualización:"
-#: ../libempathy-gtk/empathy-contact-widget.c:804
+#: ../libempathy-gtk/empathy-contact-widget.c:943
#: ../libempathy-gtk/empathy-individual-widget.c:530
msgid "Longitude:"
msgstr "Lonxitude:"
-#: ../libempathy-gtk/empathy-contact-widget.c:806
+#: ../libempathy-gtk/empathy-contact-widget.c:945
#: ../libempathy-gtk/empathy-individual-widget.c:532
msgid "Latitude:"
msgstr "Latitude:"
-#: ../libempathy-gtk/empathy-contact-widget.c:808
+#: ../libempathy-gtk/empathy-contact-widget.c:947
#: ../libempathy-gtk/empathy-individual-widget.c:534
msgid "Altitude:"
msgstr "Altitude:"
-#: ../libempathy-gtk/empathy-contact-widget.c:861
-#: ../libempathy-gtk/empathy-contact-widget.c:876
+#: ../libempathy-gtk/empathy-contact-widget.c:1000
+#: ../libempathy-gtk/empathy-contact-widget.c:1015
#: ../libempathy-gtk/empathy-individual-widget.c:616
#: ../libempathy-gtk/empathy-individual-widget.c:631
#: ../src/empathy-preferences.ui.h:12
@@ -2086,25 +2132,25 @@ msgid "Location"
msgstr "Localización"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:878
+#: ../libempathy-gtk/empathy-contact-widget.c:1017
#: ../libempathy-gtk/empathy-individual-widget.c:633
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:930
+#: ../libempathy-gtk/empathy-contact-widget.c:1069
#: ../libempathy-gtk/empathy-individual-widget.c:682
msgid "%B %e, %Y at %R UTC"
msgstr "%B %e, %Y de %R UTC"
# rever
-#: ../libempathy-gtk/empathy-contact-widget.c:1012
+#: ../libempathy-gtk/empathy-contact-widget.c:1151
#: ../libempathy-gtk/empathy-individual-widget.c:917
msgid "Save Avatar"
msgstr "Gardar o avatar"
# rever
-#: ../libempathy-gtk/empathy-contact-widget.c:1068
+#: ../libempathy-gtk/empathy-contact-widget.c:1207
#: ../libempathy-gtk/empathy-individual-widget.c:975
msgid "Unable to save avatar"
msgstr "Non foi posíbel gardar o avatar"
@@ -2177,7 +2223,7 @@ msgid "Select"
msgstr "Seleccionar"
#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1770
+#: ../src/empathy-main-window.c:1753
msgid "Group"
msgstr "Grupo"
@@ -2239,11 +2285,11 @@ msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_Ligar contactos…"
-#: ../libempathy-gtk/empathy-individual-view.c:2351
+#: ../libempathy-gtk/empathy-individual-view.c:2322
msgid "Delete and _Block"
msgstr "Eliminar e _bloquear"
-#: ../libempathy-gtk/empathy-individual-view.c:2517
+#: ../libempathy-gtk/empathy-individual-view.c:2488
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2389,17 +2435,17 @@ msgstr "Conversa nova"
# rever
#. add video toggle
-#: ../libempathy-gtk/empathy-new-call-dialog.c:253
+#: ../libempathy-gtk/empathy-new-call-dialog.c:254
msgid "Send _Video"
msgstr "Enviar _Vídeo"
#. add chat button
-#: ../libempathy-gtk/empathy-new-call-dialog.c:261
+#: ../libempathy-gtk/empathy-new-call-dialog.c:262
msgid "C_all"
msgstr "Ch_amar"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-call-dialog.c:271
+#: ../libempathy-gtk/empathy-new-call-dialog.c:272
msgid "New Call"
msgstr "Nova chamada"
@@ -2536,7 +2582,7 @@ msgstr "Gardar a mensaxe de estado _novo"
msgid "Saved Status Messages"
msgstr "Mensaxes de estado gardados"
-#: ../libempathy-gtk/empathy-theme-adium.c:1462
+#: ../libempathy-gtk/empathy-theme-adium.c:1717
msgid "Normal"
msgstr "Normal"
@@ -2636,19 +2682,19 @@ msgstr "Lembrar esta elección para futuras conexións"
msgid "Certificate Details"
msgstr "Detalles do certificado"
-#: ../libempathy-gtk/empathy-ui-utils.c:1705
+#: ../libempathy-gtk/empathy-ui-utils.c:1653
msgid "Unable to open URI"
msgstr "Non foi posíbel abrir o URI"
-#: ../libempathy-gtk/empathy-ui-utils.c:1800
+#: ../libempathy-gtk/empathy-ui-utils.c:1748
msgid "Select a file"
msgstr "Seleccione un ficheiro"
-#: ../libempathy-gtk/empathy-ui-utils.c:1872
+#: ../libempathy-gtk/empathy-ui-utils.c:1820
msgid "Insufficient free space to save file"
msgstr "Non hai espazo suficiente para gardar o ficheiro"
-#: ../libempathy-gtk/empathy-ui-utils.c:1880
+#: ../libempathy-gtk/empathy-ui-utils.c:1828
#, c-format
msgid ""
"%s of free space are required to save this file, but only %s is available. "
@@ -2657,7 +2703,7 @@ msgstr ""
"Requírense %s de espazo libre para gardar este ficheiro, pero só hai %s "
"dispoñíbeis. Elixa outra localización."
-#: ../libempathy-gtk/empathy-ui-utils.c:1924
+#: ../libempathy-gtk/empathy-ui-utils.c:1872
#, c-format
msgid "Incoming file from %s"
msgstr "Ficheiro entrante de %s"
@@ -2848,25 +2894,25 @@ msgid "Instant Message (Empathy)"
msgstr "Mensaxe instantáneo (Empathy)"
# rever
-#: ../src/empathy.c:308
+#: ../src/empathy.c:307
msgid "Don't connect on startup"
msgstr "Non conectarse ao inicio"
# rever
-#: ../src/empathy.c:312
+#: ../src/empathy.c:311
msgid "Don't display the contact list or any other dialogs on startup"
msgstr "Non mostrar a lista de contactos nin outros diálogos no inicio"
# rever
-#: ../src/empathy.c:320
+#: ../src/empathy.c:319
msgid "- Empathy IM Client"
msgstr " - Cliente de mensaxaría instantánea Empathy"
-#: ../src/empathy.c:499
+#: ../src/empathy.c:498
msgid "Error contacting the Account Manager"
msgstr "Produciuse un erro ao contactar co Xestor de contas"
-#: ../src/empathy.c:501
+#: ../src/empathy.c:500
#, c-format
msgid ""
"There was an error while trying to connect to the Telepathy Account Manager. "
@@ -3653,100 +3699,100 @@ msgid "Manage Favorite Rooms"
msgstr "Xestionar as salas preferidas"
# rever
-#: ../src/empathy-event-manager.c:504
+#: ../src/empathy-event-manager.c:510
msgid "Incoming video call"
msgstr "Chamada de vídeo entrante"
# rever
-#: ../src/empathy-event-manager.c:504
+#: ../src/empathy-event-manager.c:510
msgid "Incoming call"
msgstr "Chamada entrante"
# rever
-#: ../src/empathy-event-manager.c:508
+#: ../src/empathy-event-manager.c:514
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "%s solicítalle unha videochamada. Desexa responderlle?"
# rever
-#: ../src/empathy-event-manager.c:509
+#: ../src/empathy-event-manager.c:515
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "%s estao chamando. Quérelle responder?"
-#: ../src/empathy-event-manager.c:512 ../src/empathy-event-manager.c:661
+#: ../src/empathy-event-manager.c:518 ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming call from %s"
msgstr "Chamada entrante de %s"
-#: ../src/empathy-event-manager.c:537
+#: ../src/empathy-event-manager.c:543
msgid "_Reject"
msgstr "_Rexeitar"
# rever
-#: ../src/empathy-event-manager.c:543
+#: ../src/empathy-event-manager.c:549
msgid "_Answer"
msgstr "_Responder"
-#: ../src/empathy-event-manager.c:661
+#: ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming video call from %s"
msgstr "Videochamada entrante de %s"
# rever
-#: ../src/empathy-event-manager.c:734
+#: ../src/empathy-event-manager.c:740
msgid "Room invitation"
msgstr "Convite para unha sala"
# rever
-#: ../src/empathy-event-manager.c:736
+#: ../src/empathy-event-manager.c:742
#, c-format
msgid "Invitation to join %s"
msgstr "Invitación a unirse a %s"
# rever
-#: ../src/empathy-event-manager.c:743
+#: ../src/empathy-event-manager.c:749
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s estao convidando a unirse a %s"
-#: ../src/empathy-event-manager.c:751
+#: ../src/empathy-event-manager.c:757
msgid "_Decline"
msgstr "_Declinar"
-#: ../src/empathy-event-manager.c:756
+#: ../src/empathy-event-manager.c:762
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Unirse"
# rever
-#: ../src/empathy-event-manager.c:783
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "%s invited you to join %s"
msgstr "%s convidouno a unirse a %s"
# rever
-#: ../src/empathy-event-manager.c:789
+#: ../src/empathy-event-manager.c:795
#, c-format
msgid "You have been invited to join %s"
msgstr "Vostede foi convidado a unirse a %s"
# rever
-#: ../src/empathy-event-manager.c:840
+#: ../src/empathy-event-manager.c:846
#, c-format
msgid "Incoming file transfer from %s"
msgstr "Transferencia de ficheiro entrante de %s"
-#: ../src/empathy-event-manager.c:1010 ../src/empathy-main-window.c:377
+#: ../src/empathy-event-manager.c:1024 ../src/empathy-main-window.c:377
msgid "Password required"
msgstr "Requírese o contrasinal"
-#: ../src/empathy-event-manager.c:1066
+#: ../src/empathy-event-manager.c:1080
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cando vostede está dispoñíbel"
-#: ../src/empathy-event-manager.c:1070
+#: ../src/empathy-event-manager.c:1084
#, c-format
msgid ""
"\n"
@@ -3933,30 +3979,30 @@ msgstr "Pechar"
#. Translators: this string will be something like:
#. * Top up My Account ($1.23)..."
-#: ../src/empathy-main-window.c:849
+#: ../src/empathy-main-window.c:846
#, c-format
msgid "Top up %s (%s)..."
msgstr "Recargar %s (%s)…"
-#: ../src/empathy-main-window.c:924
+#: ../src/empathy-main-window.c:893
msgid "Top up account credit"
msgstr "Recargar o saldo da conta"
#. top up button
-#: ../src/empathy-main-window.c:999
+#: ../src/empathy-main-window.c:968
msgid "Top Up..."
msgstr "Recargar…"
-#: ../src/empathy-main-window.c:1752
+#: ../src/empathy-main-window.c:1735
msgid "Contact"
msgstr "Contacto"
-#: ../src/empathy-main-window.c:2101
+#: ../src/empathy-main-window.c:2087
msgid "Contact List"
msgstr "Lista de contactos"
# rever
-#: ../src/empathy-main-window.c:2219
+#: ../src/empathy-main-window.c:2205
msgid "Show and edit accounts"
msgstr "Mostrar e editar contas"
@@ -4445,16 +4491,16 @@ msgstr ""
"O xestor de conexión seleccionado non é compatíbel coa extensión de "
"depuración remota."
-#: ../src/empathy-invite-participant-dialog.c:34
-#: ../src/empathy-invite-participant-dialog.c:48
+#: ../src/empathy-invite-participant-dialog.c:417
+#: ../src/empathy-invite-participant-dialog.c:465
msgid "Invite Participant"
msgstr "Invitar participante"
-#: ../src/empathy-invite-participant-dialog.c:35
+#: ../src/empathy-invite-participant-dialog.c:418
msgid "Choose a contact to invite into the conversation:"
msgstr "Seleccione o contacto que quere invitar á conversa:"
-#: ../src/empathy-invite-participant-dialog.c:45
+#: ../src/empathy-invite-participant-dialog.c:461
msgid "Invite"
msgstr "Invitar"
diff --git a/po/he.po b/po/he.po
index ff07c934f..8944a995f 100644
--- a/po/he.po
+++ b/po/he.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: empathy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-13 08:30+0300\n"
-"PO-Revision-Date: 2011-05-13 08:35+0200\n"
+"POT-Creation-Date: 2011-06-08 09:55+0300\n"
+"PO-Revision-Date: 2011-06-08 09:56+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: \n"
"Language: \n"
@@ -50,40 +50,44 @@ msgid "Chat window theme"
msgstr "Chat window theme"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:4
+msgid "Chat window theme variant"
+msgstr "Chat window theme variant"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:5
msgid ""
"Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
msgstr ""
"Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:5
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:6
msgid "Compact contact list"
msgstr "Compact contact list"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:6
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:7
msgid "Connection managers should be used"
msgstr "Connection managers should be used"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:7
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
msgid "Contact list sort criterion"
msgstr "Contact list sort criterion"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
msgid "Default directory to select an avatar image from"
msgstr "Default directory to select an avatar image from"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:10
msgid "Disable popup notifications when away"
msgstr "Disable popup notifications when away"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:10
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:11
msgid "Disable sounds when away"
msgstr "Disable sounds when away"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:11
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:12
msgid "Display incoming events in the status area"
msgstr "Display incoming events in the status area"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:12
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:13
msgid ""
"Display incoming events in the status area. If false, present them to the "
"user immediately."
@@ -91,232 +95,238 @@ msgstr ""
"Display incoming events in the status area. If false, present them to the "
"user immediately."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:13
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:14
msgid "Empathy can publish the user's location"
msgstr "Empathy can publish the user's location"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:14
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:15
msgid "Empathy can use the GPS to guess the location"
msgstr "Empathy can use the GPS to guess the location"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:15
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:16
msgid "Empathy can use the cellular network to guess the location"
msgstr "Empathy can use the cellular network to guess the location"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:16
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:17
msgid "Empathy can use the network to guess the location"
msgstr "Empathy can use the network to guess the location"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:17
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:18
msgid "Empathy default download folder"
msgstr "Empathy default download folder"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:18
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:19
msgid "Empathy has migrated butterfly logs"
msgstr "Empathy has migrated butterfly logs"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:19
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:20
msgid "Empathy should auto-away when idle"
msgstr "Empathy should auto-away when idle"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:20
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:21
msgid "Empathy should auto-connect on startup"
msgstr "Empathy should auto-connect on startup"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:21
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:22
msgid "Empathy should reduce the location's accuracy"
msgstr "Empathy should reduce the location's accuracy"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:22
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:23
msgid "Empathy should use the avatar of the contact as the chat window icon"
msgstr "Empathy should use the avatar of the contact as the chat window icon"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:23
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:24
msgid "Enable WebKit Developer Tools"
msgstr "Enable WebKit Developer Tools"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:24
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:25
msgid "Enable popup notifications for new messages"
msgstr "Enable popup notifications for new messages"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:25
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:26
msgid "Enable spell checker"
msgstr "Enable spell checker"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:26
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:27
msgid "Hide main window"
msgstr "Hide main window"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:27
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:28
msgid "Hide the main window."
msgstr "Hide the main window."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:28
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:29
msgid "Nick completed character"
msgstr "Nick completed character"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:29
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:30
msgid "Open new chats in separate windows"
msgstr "Open new chats in separate windows"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:30
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:31
msgid "Path of the Adium theme to use"
msgstr "Path of the Adium theme to use"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:31
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:32
msgid "Path of the Adium theme to use if the theme used for chat is Adium."
msgstr "Path of the Adium theme to use if the theme used for chat is Adium."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:32
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:33
msgid "Play a sound for incoming messages"
msgstr "Play a sound for incoming messages"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:33
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:34
msgid "Play a sound for new conversations"
msgstr "Play a sound for new conversations"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:34
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:35
msgid "Play a sound for outgoing messages"
msgstr "Play a sound for outgoing messages"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:35
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:36
msgid "Play a sound when a contact logs in"
msgstr "Play a sound when a contact logs in"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:36
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:37
msgid "Play a sound when a contact logs out"
msgstr "Play a sound when a contact logs out"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:37
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:38
msgid "Play a sound when we log in"
msgstr "Play a sound when we log in"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:38
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:39
msgid "Play a sound when we log out"
msgstr "Play a sound when we log out"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:39
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:40
msgid "Pop up notifications if the chat isn't focused"
msgstr "Pop up notifications if the chat isn't focused"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:40
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:41
msgid "Pop up notifications when a contact logs in"
msgstr "Pop up notifications when a contact logs in"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:41
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
msgid "Pop up notifications when a contact logs out"
msgstr "Pop up notifications when a contact logs out"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show Balance in contact list"
msgstr "Show Balance in contact list"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show avatars"
msgstr "Show avatars"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show contact list in rooms"
msgstr "Show contact list in rooms"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show hint about closing the main window"
msgstr "Show hint about closing the main window"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show offline contacts"
msgstr "Show offline contacts"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Show protocols"
msgstr "Show protocols"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "Spell checking languages"
msgstr "Spell checking languages"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The default folder to save file transfers in."
msgstr "The default folder to save file transfers in."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The last directory that an avatar image was chosen from."
msgstr "The last directory that an avatar image was chosen from."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The position for the chat window side pane"
msgstr "The position for the chat window side pane"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The stored position (in pixels) of the chat window side pane."
msgstr "The stored position (in pixels) of the chat window side pane."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "The theme that is used to display the conversation in chat windows."
msgstr "The theme that is used to display the conversation in chat windows."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+msgid ""
+"The theme variant that is used to display the conversation in chat windows."
+msgstr ""
+"The theme variant that is used to display the conversation in chat windows."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use graphical smileys"
msgstr "Use graphical smileys"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Use notification sounds"
msgstr "Use notification sounds"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Use theme for chat rooms"
msgstr "Use theme for chat rooms"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr "Whether Empathy can publish the user's location to their contacts."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the GPS to guess the location."
msgstr "Whether Empathy can use the GPS to guess the location."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr "Whether Empathy can use the cellular network to guess the location."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy can use the network to guess the location."
msgstr "Whether Empathy can use the network to guess the location."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid "Whether Empathy has migrated butterfly logs."
msgstr "Whether Empathy has migrated butterfly logs."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr ""
"Whether Empathy should automatically log into your accounts on startup."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr ""
"Whether Empathy should go into away mode automatically if the user is idle."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
@@ -324,64 +334,64 @@ msgstr ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr ""
"Whether to check words typed against the languages you want to check with."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid "Whether to convert smileys into graphical images in conversations."
msgstr "Whether to convert smileys into graphical images in conversations."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr ""
"Whether to play a sound to notify of contacts logging into the network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr ""
"Whether to play a sound to notify of contacts logging out of the network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of events."
msgstr "Whether to play a sound to notify of events."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of incoming messages."
msgstr "Whether to play a sound to notify of incoming messages."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound to notify of new conversations."
msgstr "Whether to play a sound to notify of new conversations."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound to notify of outgoing messages."
msgstr "Whether to play a sound to notify of outgoing messages."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play a sound when logging into a network."
msgstr "Whether to play a sound when logging into a network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to play a sound when logging out of a network."
msgstr "Whether to play a sound when logging out of a network."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to play sound notifications when away or busy."
msgstr "Whether to play sound notifications when away or busy."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid "Whether to show a popup notification when a contact goes offline."
msgstr "Whether to show a popup notification when a contact goes offline."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when a contact goes online."
msgstr "Whether to show a popup notification when a contact goes online."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
@@ -389,41 +399,41 @@ msgstr ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid "Whether to show a popup notification when receiving a new message."
msgstr "Whether to show a popup notification when receiving a new message."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show account balances in the contact list."
msgstr "Whether to show account balances in the contact list."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr ""
"Whether to show avatars for contacts in the contact list and chat windows."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show contacts that are offline in the contact list."
msgstr "Whether to show contacts that are offline in the contact list."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show popup notifications when away or busy."
msgstr "Whether to show popup notifications when away or busy."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show protocols for contacts in the contact list."
msgstr "Whether to show protocols for contacts in the contact list."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid "Whether to show the contact list in chat rooms."
msgstr "Whether to show the contact list in chat rooms."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to show the contact list in compact mode."
msgstr "Whether to show the contact list in compact mode."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
@@ -431,11 +441,11 @@ msgstr ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:93
msgid "Whether to use the theme for chat rooms."
msgstr "Whether to use the theme for chat rooms."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:94
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -657,49 +667,49 @@ msgstr "Google Talk"
msgid "Facebook Chat"
msgstr "צ׳אט Facebook"
-#: ../libempathy/empathy-time.c:100
+#: ../libempathy/empathy-time.c:88
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
msgstr[0] "לפני שנייה"
msgstr[1] "לפני %d שניות"
-#: ../libempathy/empathy-time.c:105
+#: ../libempathy/empathy-time.c:93
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "לפני דקה"
msgstr[1] "לפני %d דקות"
-#: ../libempathy/empathy-time.c:110
+#: ../libempathy/empathy-time.c:98
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "לפני שעה"
msgstr[1] "לפני %d שעות"
-#: ../libempathy/empathy-time.c:115
+#: ../libempathy/empathy-time.c:103
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "לפני יום"
msgstr[1] "לפני %d ימים"
-#: ../libempathy/empathy-time.c:120
+#: ../libempathy/empathy-time.c:108
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "לפני שבוע"
msgstr[1] "לפני %d שבועות"
-#: ../libempathy/empathy-time.c:125
+#: ../libempathy/empathy-time.c:113
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "לפני חודש"
msgstr[1] "לפני %d חודשים"
-#: ../libempathy/empathy-time.c:130
+#: ../libempathy/empathy-time.c:136
msgid "in the future"
msgstr "בעתיד"
@@ -707,67 +717,67 @@ msgstr "בעתיד"
msgid "All"
msgstr "הכול"
-#: ../libempathy-gtk/empathy-account-widget.c:678
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "חשבון"
-#: ../libempathy-gtk/empathy-account-widget.c:679
+#: ../libempathy-gtk/empathy-account-widget.c:682
msgid "Password"
msgstr "ססמה"
-#: ../libempathy-gtk/empathy-account-widget.c:680
+#: ../libempathy-gtk/empathy-account-widget.c:683
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "שרת"
-#: ../libempathy-gtk/empathy-account-widget.c:681
+#: ../libempathy-gtk/empathy-account-widget.c:684
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "פתחה"
-#: ../libempathy-gtk/empathy-account-widget.c:753
-#: ../libempathy-gtk/empathy-account-widget.c:810
+#: ../libempathy-gtk/empathy-account-widget.c:756
+#: ../libempathy-gtk/empathy-account-widget.c:813
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1151
+#: ../libempathy-gtk/empathy-account-widget.c:1154
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr "החשבון %s נערך דרך החשבונות המקוונים שלי."
-#: ../libempathy-gtk/empathy-account-widget.c:1157
+#: ../libempathy-gtk/empathy-account-widget.c:1160
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr "לא ניתן לערוך את החשבון %s ב־Empathy."
-#: ../libempathy-gtk/empathy-account-widget.c:1177
+#: ../libempathy-gtk/empathy-account-widget.c:1180
msgid "Launch My Web Accounts"
msgstr "טעינת החשבונות המקוונים שלי"
-#: ../libempathy-gtk/empathy-account-widget.c:1515
+#: ../libempathy-gtk/empathy-account-widget.c:1518
msgid "Username:"
msgstr "ש_ם משתמש:"
-#: ../libempathy-gtk/empathy-account-widget.c:1833
+#: ../libempathy-gtk/empathy-account-widget.c:1836
msgid "A_pply"
msgstr "ה_חלה"
-#: ../libempathy-gtk/empathy-account-widget.c:1863
+#: ../libempathy-gtk/empathy-account-widget.c:1866
msgid "L_og in"
msgstr "_כניסה"
-#: ../libempathy-gtk/empathy-account-widget.c:1937
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "This account already exists on the server"
msgstr "חשבון זה כבר קיים על השרת"
-#: ../libempathy-gtk/empathy-account-widget.c:1940
+#: ../libempathy-gtk/empathy-account-widget.c:1943
msgid "Create a new account on the server"
msgstr "יצירת חשבון חדש על השרת"
-#: ../libempathy-gtk/empathy-account-widget.c:2132
+#: ../libempathy-gtk/empathy-account-widget.c:2135
msgid "Ca_ncel"
msgstr "_ביטול"
@@ -776,19 +786,19 @@ msgstr "_ביטול"
#. * like: "MyUserName on freenode".
#. * You should reverse the order of these arguments if the
#. * server should come before the login id in your locale.
-#: ../libempathy-gtk/empathy-account-widget.c:2410
+#: ../libempathy-gtk/empathy-account-widget.c:2413
#, c-format
msgid "%1$s on %2$s"
msgstr "‏%1$s על גבי %2$s"
#. To translators: The parameter is the protocol name. The resulting
#. * string will be something like: "Jabber Account"
-#: ../libempathy-gtk/empathy-account-widget.c:2436
+#: ../libempathy-gtk/empathy-account-widget.c:2439
#, c-format
msgid "%s Account"
msgstr "חשבון %s"
-#: ../libempathy-gtk/empathy-account-widget.c:2440
+#: ../libempathy-gtk/empathy-account-widget.c:2443
msgid "New account"
msgstr "חשבון חדש"
@@ -813,7 +823,7 @@ msgstr "מתקדם"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:5
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:8
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:5
msgid "Pass_word:"
msgstr "ססמ_ה:"
@@ -823,7 +833,7 @@ msgstr "ססמ_ה:"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:6
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:5
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
msgid "Remember Password"
msgstr "שמירת הססמה"
@@ -833,7 +843,7 @@ msgstr "שמירת הססמה"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:7
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:11
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:6
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:6
#: ../libempathy-gtk/empathy-password-dialog.c:311
msgid "Remember password"
@@ -909,36 +919,36 @@ msgstr "מספר מנוי ה־ICQ שלך?"
msgid "What is your ICQ password?"
msgstr "ססמת ה־ICQ שלך?"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:183
-#: ../libempathy-gtk/empathy-account-widget-sip.c:216
+#: ../libempathy-gtk/empathy-account-widget-sip.c:184
+#: ../libempathy-gtk/empathy-account-widget-sip.c:217
msgid "Auto"
msgstr "אוטומטי"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:186
+#: ../libempathy-gtk/empathy-account-widget-sip.c:187
msgid "UDP"
msgstr "UDP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:189
+#: ../libempathy-gtk/empathy-account-widget-sip.c:190
msgid "TCP"
msgstr "TCP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:192
+#: ../libempathy-gtk/empathy-account-widget-sip.c:193
msgid "TLS"
msgstr "TLS"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:221
+#: ../libempathy-gtk/empathy-account-widget-sip.c:222
msgid "Register"
msgstr "הרשמה"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:226
+#: ../libempathy-gtk/empathy-account-widget-sip.c:227
msgid "Options"
msgstr "אפשרויות"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:229
+#: ../libempathy-gtk/empathy-account-widget-sip.c:230
msgid "None"
msgstr "ללא"
@@ -1112,58 +1122,63 @@ msgid "Discover the STUN server automatically"
msgstr "גילוי שרת ה־STUN אוטומטית"
#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
+msgid "Ignore TLS Errors"
+msgstr "התעלמות משגיאות TLS"
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
msgid "Interval (seconds)"
msgstr "מרווח (שניות)"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
msgid "Keep-Alive Options"
msgstr "אפשרויות Keep-Alive"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
msgid "Loose Routing"
msgstr "Loose Routing"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
msgid "Mechanism:"
msgstr "מנגנון:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
msgid "Miscellaneous Options"
msgstr "אפשרויות אחרות"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
msgid "NAT Traversal Options"
msgstr "אפשרויות מעקף NAT"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
msgid "Port:"
msgstr "_פתחה:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
msgid "Proxy Options"
msgstr "אפשרויות מתווך"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
msgid "STUN Server:"
msgstr "שרת STUN:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-contact-widget.c:347
msgid "Server:"
msgstr "שרת:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
msgid "Transport:"
msgstr "תעבורה:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
msgid "What is your SIP account password?"
msgstr "מהי ססמת חשבון ה־SIP שלך?"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
msgid "What is your SIP login ID?"
msgstr "מהו מזהה ההתחברות של חשבון ה־SIP שלך?"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
msgid "_Username:"
msgstr "ש_ם משתמש:"
@@ -1187,28 +1202,36 @@ msgstr "מז_הה Yahoo!:"
msgid "_Room List locale:"
msgstr "שפת רשימת ה_חדרים:"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:448
-#: ../libempathy-gtk/empathy-avatar-chooser.c:524
+#: ../libempathy-gtk/empathy-avatar-chooser.c:474
+#: ../libempathy-gtk/empathy-avatar-chooser.c:559
msgid "Couldn't convert image"
msgstr "לא ניתן להמיר תמונה"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:449
+#: ../libempathy-gtk/empathy-avatar-chooser.c:475
msgid "None of the accepted image formats are supported on your system"
msgstr "אף אחד מסוגי התמונות המקובלים אינם נתמכים על ידי המערכת שלך"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:930
+#: ../libempathy-gtk/empathy-avatar-chooser.c:822
+msgid "Couldn't save pixbuf to png"
+msgstr "לא ניתן לשמור את ה־pixbuf ל־png"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:938
msgid "Select Your Avatar Image"
msgstr "נא לבחור את התמונה האישית שלך"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:933
+#: ../libempathy-gtk/empathy-avatar-chooser.c:942
+msgid "Take a picture..."
+msgstr "צילום תמונה..."
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:945
msgid "No Image"
msgstr "ללא תמונה"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:995
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1005
msgid "Images"
msgstr "תמונות"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:999
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1009
msgid "All Files"
msgstr "כל הקבצים"
@@ -1216,57 +1239,62 @@ msgstr "כל הקבצים"
msgid "Click to enlarge"
msgstr "יש ללחוץ כדי להגדיל"
-#: ../libempathy-gtk/empathy-chat.c:668
+#: ../libempathy-gtk/empathy-chat.c:695
msgid "Failed to open private chat"
msgstr "ארע כשל בפתיחת שיחה פרטית"
-#: ../libempathy-gtk/empathy-chat.c:733
+#: ../libempathy-gtk/empathy-chat.c:756
msgid "Topic not supported on this conversation"
msgstr "אין תמיכה בשימוש בנושא בדיון זה"
-#: ../libempathy-gtk/empathy-chat.c:739
+#: ../libempathy-gtk/empathy-chat.c:762
msgid "You are not allowed to change the topic"
msgstr "אין לך הרשאה לשנות את הנושא"
-#: ../libempathy-gtk/empathy-chat.c:948
+#: ../libempathy-gtk/empathy-chat.c:966
+#, c-format
+msgid "“%s” is not a valid contact ID"
+msgstr "\"%s\" אינו מזהה איש קשר לא תקין"
+
+#: ../libempathy-gtk/empathy-chat.c:1023
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear: פינוי כל ההודעות מהדיון הנוכחי"
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:1026
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <נושא>:‎ הגדרת נושא השיחה הנוכחית"
-#: ../libempathy-gtk/empathy-chat.c:954
+#: ../libempathy-gtk/empathy-chat.c:1029
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <זיהוי החדר>:‎ הצטרפות לחדר שיחה חדש"
-#: ../libempathy-gtk/empathy-chat.c:957
+#: ../libempathy-gtk/empathy-chat.c:1032
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <זיהוי החדר>:‎ הצטרפות לחדר שיחה חדש"
-#: ../libempathy-gtk/empathy-chat.c:962
+#: ../libempathy-gtk/empathy-chat.c:1036
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
msgstr "/part [<זיהוי החדר>]‎ [<סיבה>]:‎ עזיבת ערוץ השיחה, הנוכחי הוא בררת המחדל"
-#: ../libempathy-gtk/empathy-chat.c:967
+#: ../libempathy-gtk/empathy-chat.c:1040
msgid "/query <contact ID> [<message>]: open a private chat"
-msgstr "/query <זיהוי איש הקשר> ‎[<הודעה>]:‎ פתיחת צ'אט אישי"
+msgstr "/query <זיהוי איש הקשר> ‎[<הודעה>]:‎ פתיחת צ׳אט אישי"
-#: ../libempathy-gtk/empathy-chat.c:970
+#: ../libempathy-gtk/empathy-chat.c:1043
msgid "/msg <contact ID> <message>: open a private chat"
-msgstr "/msg <זיהוי איש הקשר>‎ <הודעה>:‎ פתיחת צ'אט פרטי"
+msgstr "/msg <זיהוי איש הקשר>‎ <הודעה>:‎ פתיחת צ׳אט פרטי"
-#: ../libempathy-gtk/empathy-chat.c:973
+#: ../libempathy-gtk/empathy-chat.c:1046
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <כינוי>:‎ שינוי הכינוי שלך בשרת הנוכחי"
-#: ../libempathy-gtk/empathy-chat.c:976
+#: ../libempathy-gtk/empathy-chat.c:1049
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <הודעה>:‎ שליחת הודעת ACTION לדיון הנוכחי"
-#: ../libempathy-gtk/empathy-chat.c:979
+#: ../libempathy-gtk/empathy-chat.c:1052
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1275,7 +1303,11 @@ msgstr ""
"/say <הודעה>:‎ שליחת <הודעה> לדיון הנוכחי. פקודה זו משמשת לשליחת הודעות "
"המתחילות ב־'/'. לדוגמה: \"/say /join משמשת לצורך התחברות לחדר שיחה חדש\""
-#: ../libempathy-gtk/empathy-chat.c:984
+#: ../libempathy-gtk/empathy-chat.c:1057
+msgid "/whois <contact ID>: display information about a contact"
+msgstr "/whois <מזהה המשתמש>:‎ הצגת פרטים על איש הקשר"
+
+#: ../libempathy-gtk/empathy-chat.c:1060
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1283,113 +1315,113 @@ msgstr ""
"/help [<פקודה>]:‎ הצגת כל הפקודות הנתמכות. אם יש הגדרה ל־<פקודה> יוצג אופן "
"הפעלתה."
-#: ../libempathy-gtk/empathy-chat.c:994
+#: ../libempathy-gtk/empathy-chat.c:1070
#, c-format
msgid "Usage: %s"
msgstr "שימוש: %s"
-#: ../libempathy-gtk/empathy-chat.c:1033
+#: ../libempathy-gtk/empathy-chat.c:1109
msgid "Unknown command"
msgstr "פקודה לא ידועה"
-#: ../libempathy-gtk/empathy-chat.c:1159
+#: ../libempathy-gtk/empathy-chat.c:1235
msgid "Unknown command; see /help for the available commands"
msgstr "פקודה בלתי מוכרת; יש לעיין ב־‎/help לצפייה בפקודות הזמינות"
#. translators: error used when user doesn't have enough credit on his
#. * account to send the message.
-#: ../libempathy-gtk/empathy-chat.c:1299
+#: ../libempathy-gtk/empathy-chat.c:1393
msgid "insufficient balance to send message"
msgstr "המאזן אינו מאפשר לשלוח הודעה"
-#: ../libempathy-gtk/empathy-chat.c:1301
+#: ../libempathy-gtk/empathy-chat.c:1395
msgid "not capable"
msgstr "ללא יכולת"
-#: ../libempathy-gtk/empathy-chat.c:1308
+#: ../libempathy-gtk/empathy-chat.c:1402
msgid "offline"
msgstr "לא מחובר"
-#: ../libempathy-gtk/empathy-chat.c:1311
+#: ../libempathy-gtk/empathy-chat.c:1405
msgid "invalid contact"
msgstr "איש קשר לא תקין"
-#: ../libempathy-gtk/empathy-chat.c:1314
+#: ../libempathy-gtk/empathy-chat.c:1408
msgid "permission denied"
msgstr "איש קשר לא תקין"
-#: ../libempathy-gtk/empathy-chat.c:1317
+#: ../libempathy-gtk/empathy-chat.c:1411
msgid "too long message"
msgstr "הודעה ארוכה מדי"
-#: ../libempathy-gtk/empathy-chat.c:1320
+#: ../libempathy-gtk/empathy-chat.c:1414
msgid "not implemented"
msgstr "לא ממומש"
-#: ../libempathy-gtk/empathy-chat.c:1324
+#: ../libempathy-gtk/empathy-chat.c:1418
msgid "unknown"
msgstr "לא ידוע"
-#: ../libempathy-gtk/empathy-chat.c:1330
+#: ../libempathy-gtk/empathy-chat.c:1424
#, c-format
msgid "Error sending message '%s': %s"
msgstr "שגיאה בשליחת ההודעה '%s': ‏%s"
-#: ../libempathy-gtk/empathy-chat.c:1334
+#: ../libempathy-gtk/empathy-chat.c:1428
#, c-format
msgid "Error sending message: %s"
msgstr "שגיאה בשליחת ההודעה: ‏%s"
-#: ../libempathy-gtk/empathy-chat.c:1395 ../src/empathy-chat-window.c:760
+#: ../libempathy-gtk/empathy-chat.c:1489 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "נושא:"
-#: ../libempathy-gtk/empathy-chat.c:1407
+#: ../libempathy-gtk/empathy-chat.c:1501
#, c-format
msgid "Topic set to: %s"
msgstr "הנושא הוגדר ל־: %s"
-#: ../libempathy-gtk/empathy-chat.c:1409
+#: ../libempathy-gtk/empathy-chat.c:1503
msgid "No topic defined"
msgstr "לא נקבע נושא"
-#: ../libempathy-gtk/empathy-chat.c:1916
+#: ../libempathy-gtk/empathy-chat.c:2010
msgid "(No Suggestions)"
msgstr "(אין הצעות)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1984
+#: ../libempathy-gtk/empathy-chat.c:2078
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "הוספת '%s' למילון"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:2021
+#: ../libempathy-gtk/empathy-chat.c:2115
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "הוספת '%s' למילון %s"
-#: ../libempathy-gtk/empathy-chat.c:2078
+#: ../libempathy-gtk/empathy-chat.c:2172
msgid "Insert Smiley"
msgstr "הכנס סמיילי"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2096
-#: ../libempathy-gtk/empathy-ui-utils.c:1808
+#: ../libempathy-gtk/empathy-chat.c:2190
+#: ../libempathy-gtk/empathy-ui-utils.c:1756
msgid "_Send"
msgstr "_שלח"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2131
+#: ../libempathy-gtk/empathy-chat.c:2225
msgid "_Spelling Suggestions"
msgstr "הצעות _איות"
-#: ../libempathy-gtk/empathy-chat.c:2220
+#: ../libempathy-gtk/empathy-chat.c:2314
msgid "Failed to retrieve recent logs"
msgstr "ארע כשל בקבלת הדוחות האחרונים"
-#: ../libempathy-gtk/empathy-chat.c:2331
+#: ../libempathy-gtk/empathy-chat.c:2425
#, c-format
msgid "%s has disconnected"
msgstr "‏%s התנתק"
@@ -1397,12 +1429,12 @@ msgstr "‏%s התנתק"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2338
+#: ../libempathy-gtk/empathy-chat.c:2432
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "‏%1$s סולק על ידי %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2341
+#: ../libempathy-gtk/empathy-chat.c:2435
#, c-format
msgid "%s was kicked"
msgstr "‏%s סולק"
@@ -1410,17 +1442,17 @@ msgstr "‏%s סולק"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2349
+#: ../libempathy-gtk/empathy-chat.c:2443
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "‏%1$s נחסם על ידי %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2352
+#: ../libempathy-gtk/empathy-chat.c:2446
#, c-format
msgid "%s was banned"
msgstr "‏%s נחסם"
-#: ../libempathy-gtk/empathy-chat.c:2356
+#: ../libempathy-gtk/empathy-chat.c:2450
#, c-format
msgid "%s has left the room"
msgstr "‏%s עזב את החדר"
@@ -1430,69 +1462,69 @@ msgstr "‏%s עזב את החדר"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2365
+#: ../libempathy-gtk/empathy-chat.c:2459
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2390
+#: ../libempathy-gtk/empathy-chat.c:2484
#, c-format
msgid "%s has joined the room"
msgstr "‏%s הצטרף לחדר"
-#: ../libempathy-gtk/empathy-chat.c:2415
+#: ../libempathy-gtk/empathy-chat.c:2509
#, c-format
msgid "%s is now known as %s"
msgstr "‏%s נודע כעת בכינוי %s"
-#: ../libempathy-gtk/empathy-chat.c:2554
+#: ../libempathy-gtk/empathy-chat.c:2648
#: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1117
+#: ../src/empathy-event-manager.c:1130
msgid "Disconnected"
msgstr "מנותק"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3202
+#: ../libempathy-gtk/empathy-chat.c:3316
msgid "Would you like to store this password?"
msgstr "האם ברצונך לאחסן ססמה זו?"
-#: ../libempathy-gtk/empathy-chat.c:3208
+#: ../libempathy-gtk/empathy-chat.c:3322
msgid "Remember"
msgstr "שמירה"
-#: ../libempathy-gtk/empathy-chat.c:3218
+#: ../libempathy-gtk/empathy-chat.c:3332
msgid "Not now"
msgstr "לא כעת"
-#: ../libempathy-gtk/empathy-chat.c:3262
+#: ../libempathy-gtk/empathy-chat.c:3376
msgid "Retry"
msgstr "ניסיון חוזר"
-#: ../libempathy-gtk/empathy-chat.c:3266
+#: ../libempathy-gtk/empathy-chat.c:3380
msgid "Wrong password; please try again:"
msgstr "ססמה שגויה; נא לנסות שוב:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3383
+#: ../libempathy-gtk/empathy-chat.c:3510
msgid "This room is protected by a password:"
msgstr "חדר זה מוגן בססמה:"
-#: ../libempathy-gtk/empathy-chat.c:3410
+#: ../libempathy-gtk/empathy-chat.c:3537
msgid "Join"
msgstr "הצטרפות"
-#: ../libempathy-gtk/empathy-chat.c:3602 ../src/empathy-event-manager.c:1138
+#: ../libempathy-gtk/empathy-chat.c:3738 ../src/empathy-event-manager.c:1151
msgid "Connected"
msgstr "מחובר"
-#: ../libempathy-gtk/empathy-chat.c:3657
+#: ../libempathy-gtk/empathy-chat.c:3793
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "שיחה"
#. Translators: this string is a something like
#. * "Escher Cat (SMS)"
-#: ../libempathy-gtk/empathy-chat.c:3662
+#: ../libempathy-gtk/empathy-chat.c:3798
#, c-format
msgid "%s (SMS)"
msgstr "%s (SMS)"
@@ -1525,7 +1557,7 @@ msgstr "עריכת אנשי הקשר החסומים"
#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-individual-widget.c:1495
#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
#: ../src/empathy-chatrooms-window.ui.h:1
#: ../src/empathy-new-chatroom-dialog.ui.h:1
@@ -1534,13 +1566,13 @@ msgstr "חשבון:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:1002
+#: ../libempathy-gtk/empathy-theme-adium.c:1264
msgid "_Copy Link Address"
msgstr "העתקת _מיקום הקישור"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:1009
+#: ../libempathy-gtk/empathy-theme-adium.c:1271
msgid "_Open Link"
msgstr "_פתיחת קישור"
@@ -1565,24 +1597,24 @@ msgid "New Contact"
msgstr "איש קשר חדש"
#: ../libempathy-gtk/empathy-contact-dialogs.c:533
-#: ../libempathy-gtk/empathy-individual-dialogs.c:199
+#: ../libempathy-gtk/empathy-individual-dialogs.c:200
#, c-format
msgid "Block %s?"
msgstr "האם לחסום את %s?"
#: ../libempathy-gtk/empathy-contact-dialogs.c:538
-#: ../libempathy-gtk/empathy-individual-dialogs.c:247
+#: ../libempathy-gtk/empathy-individual-dialogs.c:252
#, c-format
msgid "Are you sure you want to block '%s' from contacting you again?"
msgstr "האם אכן ברצונך לחסום את אפשרות ההתקשרות של '%s' אליך?"
#: ../libempathy-gtk/empathy-contact-dialogs.c:543
-#: ../libempathy-gtk/empathy-individual-dialogs.c:269
+#: ../libempathy-gtk/empathy-individual-dialogs.c:274
msgid "_Block"
msgstr "ח_סימה"
#: ../libempathy-gtk/empathy-contact-dialogs.c:559
-#: ../libempathy-gtk/empathy-individual-dialogs.c:278
+#: ../libempathy-gtk/empathy-individual-dialogs.c:283
msgid "_Report this contact as abusive"
msgid_plural "_Report these contacts as abusive"
msgstr[0] "_דיווח על משתמש זה כמטרידן"
@@ -1608,34 +1640,34 @@ msgstr "ללא קבוצה"
msgid "Favorite People"
msgstr "אנשים מועדפים"
-#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2386
+#: ../libempathy-gtk/empathy-contact-list-view.c:1983
+#: ../libempathy-gtk/empathy-individual-view.c:2367
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "האם להסיר את הקבוצה '%s'?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2389
+#: ../libempathy-gtk/empathy-contact-list-view.c:1985
+#: ../libempathy-gtk/empathy-individual-view.c:2370
msgid "Removing group"
msgstr "הקבוצה מוסרת"
#. Remove
-#: ../libempathy-gtk/empathy-contact-list-view.c:2038
-#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2444
-#: ../libempathy-gtk/empathy-individual-view.c:2637
+#: ../libempathy-gtk/empathy-contact-list-view.c:2034
+#: ../libempathy-gtk/empathy-contact-list-view.c:2111
+#: ../libempathy-gtk/empathy-individual-view.c:2425
+#: ../libempathy-gtk/empathy-individual-view.c:2628
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "ה_סרה"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2508
+#: ../libempathy-gtk/empathy-contact-list-view.c:2064
+#: ../libempathy-gtk/empathy-individual-view.c:2492
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "להסיר את איש הקשר '%s'?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2529
+#: ../libempathy-gtk/empathy-contact-list-view.c:2066
+#: ../libempathy-gtk/empathy-individual-view.c:2513
msgid "Removing contact"
msgstr "איש קשר מוסר"
@@ -1649,48 +1681,48 @@ msgid "_Block Contact"
msgstr "ח_סימת איש קשר"
#: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../libempathy-gtk/empathy-individual-menu.c:546
#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_שיחה"
#: ../libempathy-gtk/empathy-contact-menu.c:358
-#: ../libempathy-gtk/empathy-individual-menu.c:625
+#: ../libempathy-gtk/empathy-individual-menu.c:635
msgctxt "menu item"
msgid "_Audio Call"
msgstr "שיחה _קולית"
#: ../libempathy-gtk/empathy-contact-menu.c:389
-#: ../libempathy-gtk/empathy-individual-menu.c:667
+#: ../libempathy-gtk/empathy-individual-menu.c:677
msgctxt "menu item"
msgid "_Video Call"
msgstr "שיחת _וידאו"
#: ../libempathy-gtk/empathy-contact-menu.c:435
-#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../libempathy-gtk/empathy-individual-menu.c:720
#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "שיחות _קודמות"
#: ../libempathy-gtk/empathy-contact-menu.c:457
-#: ../libempathy-gtk/empathy-individual-menu.c:751
+#: ../libempathy-gtk/empathy-individual-menu.c:761
msgid "Send File"
msgstr "שליחת קובץ"
#: ../libempathy-gtk/empathy-contact-menu.c:480
-#: ../libempathy-gtk/empathy-individual-menu.c:793
+#: ../libempathy-gtk/empathy-individual-menu.c:803
msgid "Share My Desktop"
msgstr "שיתוף שולחן העבודה שלי"
#: ../libempathy-gtk/empathy-contact-menu.c:520
-#: ../libempathy-gtk/empathy-contact-widget.c:1751
-#: ../libempathy-gtk/empathy-individual-menu.c:828
-#: ../libempathy-gtk/empathy-individual-widget.c:1370
+#: ../libempathy-gtk/empathy-contact-widget.c:1890
+#: ../libempathy-gtk/empathy-individual-menu.c:838
+#: ../libempathy-gtk/empathy-individual-widget.c:1386
msgid "Favorite"
msgstr "מועדף"
#: ../libempathy-gtk/empathy-contact-menu.c:549
-#: ../libempathy-gtk/empathy-individual-menu.c:856
+#: ../libempathy-gtk/empathy-individual-menu.c:866
msgid "Infor_mation"
msgstr "_מידע"
@@ -1700,13 +1732,13 @@ msgid "_Edit"
msgstr "ע_ריכה"
#: ../libempathy-gtk/empathy-contact-menu.c:649
-#: ../libempathy-gtk/empathy-individual-menu.c:1037
-#: ../src/empathy-chat-window.c:986
+#: ../libempathy-gtk/empathy-individual-menu.c:1053
+#: ../src/empathy-chat-window.c:1010
msgid "Inviting you to this room"
msgstr "מזמין/ה אותך לחדר זה"
#: ../libempathy-gtk/empathy-contact-menu.c:680
-#: ../libempathy-gtk/empathy-individual-menu.c:1084
+#: ../libempathy-gtk/empathy-individual-menu.c:1099
msgid "_Invite to Chat Room"
msgstr "ה_זמנה לחדר שיחה"
@@ -1731,178 +1763,201 @@ msgstr "לא נמצאו אנשי קשר"
msgid "Select a contact"
msgstr "בחירת איש קשר"
-#: ../libempathy-gtk/empathy-contact-widget.c:295
+#: ../libempathy-gtk/empathy-contact-widget.c:336
#: ../libempathy-gtk/empathy-individual-widget.c:153
msgid "Full name:"
msgstr "שם מלא:"
-#: ../libempathy-gtk/empathy-contact-widget.c:296
+#: ../libempathy-gtk/empathy-contact-widget.c:337
#: ../libempathy-gtk/empathy-individual-widget.c:154
msgid "Phone number:"
msgstr "מספר טלפון:"
-#: ../libempathy-gtk/empathy-contact-widget.c:297
+#: ../libempathy-gtk/empathy-contact-widget.c:338
#: ../libempathy-gtk/empathy-individual-widget.c:155
msgid "E-mail address:"
msgstr "כתובת דוא״ל:"
-#: ../libempathy-gtk/empathy-contact-widget.c:298
+#: ../libempathy-gtk/empathy-contact-widget.c:339
#: ../libempathy-gtk/empathy-individual-widget.c:156
msgid "Website:"
msgstr "אתר אינטרנט:"
-#: ../libempathy-gtk/empathy-contact-widget.c:299
+#: ../libempathy-gtk/empathy-contact-widget.c:340
#: ../libempathy-gtk/empathy-individual-widget.c:157
msgid "Birthday:"
msgstr "יום הולדת:"
-#: ../libempathy-gtk/empathy-contact-widget.c:762
-#: ../libempathy-gtk/empathy-individual-widget.c:488
+#. Note to translators: this is the caption for a string of the form "5
+#. * minutes ago", and refers to the time since the contact last interacted
+#. * with their IM client.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:346
+msgid "Last seen:"
+msgstr "צפייה אחרונה:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:348
+msgid "Connected from:"
+msgstr "מחובר דרך:"
+
+#. FIXME: once Idle implements SimplePresence using this information, we can
+#. * and should bin this.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:353
+msgid "Away message:"
+msgstr "הודעת התרחקות:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:606
+msgid "Channels:"
+msgstr "ערוצים:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:901
+#: ../libempathy-gtk/empathy-individual-widget.c:495
msgid "Country ISO Code:"
msgstr "קוד המדינה בתקן ISO:"
-#: ../libempathy-gtk/empathy-contact-widget.c:764
-#: ../libempathy-gtk/empathy-individual-widget.c:490
+#: ../libempathy-gtk/empathy-contact-widget.c:903
+#: ../libempathy-gtk/empathy-individual-widget.c:497
msgid "Country:"
msgstr "ארץ:"
-#: ../libempathy-gtk/empathy-contact-widget.c:766
-#: ../libempathy-gtk/empathy-individual-widget.c:492
+#: ../libempathy-gtk/empathy-contact-widget.c:905
+#: ../libempathy-gtk/empathy-individual-widget.c:499
msgid "State:"
msgstr "מדינה:"
-#: ../libempathy-gtk/empathy-contact-widget.c:768
-#: ../libempathy-gtk/empathy-individual-widget.c:494
+#: ../libempathy-gtk/empathy-contact-widget.c:907
+#: ../libempathy-gtk/empathy-individual-widget.c:501
msgid "City:"
msgstr "עיר:"
-#: ../libempathy-gtk/empathy-contact-widget.c:770
-#: ../libempathy-gtk/empathy-individual-widget.c:496
+#: ../libempathy-gtk/empathy-contact-widget.c:909
+#: ../libempathy-gtk/empathy-individual-widget.c:503
msgid "Area:"
msgstr "אזור:"
-#: ../libempathy-gtk/empathy-contact-widget.c:772
-#: ../libempathy-gtk/empathy-individual-widget.c:498
+#: ../libempathy-gtk/empathy-contact-widget.c:911
+#: ../libempathy-gtk/empathy-individual-widget.c:505
msgid "Postal Code:"
msgstr "מיקוד:"
-#: ../libempathy-gtk/empathy-contact-widget.c:774
-#: ../libempathy-gtk/empathy-individual-widget.c:500
+#: ../libempathy-gtk/empathy-contact-widget.c:913
+#: ../libempathy-gtk/empathy-individual-widget.c:507
msgid "Street:"
msgstr "רחוב:"
-#: ../libempathy-gtk/empathy-contact-widget.c:776
-#: ../libempathy-gtk/empathy-individual-widget.c:502
+#: ../libempathy-gtk/empathy-contact-widget.c:915
+#: ../libempathy-gtk/empathy-individual-widget.c:509
msgid "Building:"
msgstr "מבנה:"
-#: ../libempathy-gtk/empathy-contact-widget.c:778
-#: ../libempathy-gtk/empathy-individual-widget.c:504
+#: ../libempathy-gtk/empathy-contact-widget.c:917
+#: ../libempathy-gtk/empathy-individual-widget.c:511
msgid "Floor:"
msgstr "קומה:"
-#: ../libempathy-gtk/empathy-contact-widget.c:780
-#: ../libempathy-gtk/empathy-individual-widget.c:506
+#: ../libempathy-gtk/empathy-contact-widget.c:919
+#: ../libempathy-gtk/empathy-individual-widget.c:513
msgid "Room:"
msgstr "חדר:"
-#: ../libempathy-gtk/empathy-contact-widget.c:782
-#: ../libempathy-gtk/empathy-individual-widget.c:508
+#: ../libempathy-gtk/empathy-contact-widget.c:921
+#: ../libempathy-gtk/empathy-individual-widget.c:515
msgid "Text:"
msgstr "טקסט:"
-#: ../libempathy-gtk/empathy-contact-widget.c:784
-#: ../libempathy-gtk/empathy-individual-widget.c:510
+#: ../libempathy-gtk/empathy-contact-widget.c:923
+#: ../libempathy-gtk/empathy-individual-widget.c:517
msgid "Description:"
msgstr "תיאור:"
-#: ../libempathy-gtk/empathy-contact-widget.c:786
-#: ../libempathy-gtk/empathy-individual-widget.c:512
+#: ../libempathy-gtk/empathy-contact-widget.c:925
+#: ../libempathy-gtk/empathy-individual-widget.c:519
msgid "URI:"
msgstr "כתובת:"
-#: ../libempathy-gtk/empathy-contact-widget.c:788
-#: ../libempathy-gtk/empathy-individual-widget.c:514
+#: ../libempathy-gtk/empathy-contact-widget.c:927
+#: ../libempathy-gtk/empathy-individual-widget.c:521
msgid "Accuracy Level:"
msgstr "רמת דיוק:"
-#: ../libempathy-gtk/empathy-contact-widget.c:790
-#: ../libempathy-gtk/empathy-individual-widget.c:516
+#: ../libempathy-gtk/empathy-contact-widget.c:929
+#: ../libempathy-gtk/empathy-individual-widget.c:523
msgid "Error:"
msgstr "שגיאה:"
-#: ../libempathy-gtk/empathy-contact-widget.c:792
-#: ../libempathy-gtk/empathy-individual-widget.c:518
+#: ../libempathy-gtk/empathy-contact-widget.c:931
+#: ../libempathy-gtk/empathy-individual-widget.c:525
msgid "Vertical Error (meters):"
msgstr "סטייה אנכית (מטרים):"
-#: ../libempathy-gtk/empathy-contact-widget.c:794
-#: ../libempathy-gtk/empathy-individual-widget.c:520
+#: ../libempathy-gtk/empathy-contact-widget.c:933
+#: ../libempathy-gtk/empathy-individual-widget.c:527
msgid "Horizontal Error (meters):"
msgstr "סטייה אופקית (מטרים):"
-#: ../libempathy-gtk/empathy-contact-widget.c:796
-#: ../libempathy-gtk/empathy-individual-widget.c:522
+#: ../libempathy-gtk/empathy-contact-widget.c:935
+#: ../libempathy-gtk/empathy-individual-widget.c:529
msgid "Speed:"
msgstr "מהירות:"
-#: ../libempathy-gtk/empathy-contact-widget.c:798
-#: ../libempathy-gtk/empathy-individual-widget.c:524
+#: ../libempathy-gtk/empathy-contact-widget.c:937
+#: ../libempathy-gtk/empathy-individual-widget.c:531
msgid "Bearing:"
msgstr "אזימוט:"
-#: ../libempathy-gtk/empathy-contact-widget.c:800
-#: ../libempathy-gtk/empathy-individual-widget.c:526
+#: ../libempathy-gtk/empathy-contact-widget.c:939
+#: ../libempathy-gtk/empathy-individual-widget.c:533
msgid "Climb Speed:"
msgstr "מהירות הטיפוס:"
-#: ../libempathy-gtk/empathy-contact-widget.c:802
-#: ../libempathy-gtk/empathy-individual-widget.c:528
+#: ../libempathy-gtk/empathy-contact-widget.c:941
+#: ../libempathy-gtk/empathy-individual-widget.c:535
msgid "Last Updated on:"
msgstr "עדכון אחרון ב־:"
-#: ../libempathy-gtk/empathy-contact-widget.c:804
-#: ../libempathy-gtk/empathy-individual-widget.c:530
+#: ../libempathy-gtk/empathy-contact-widget.c:943
+#: ../libempathy-gtk/empathy-individual-widget.c:537
msgid "Longitude:"
msgstr "קו אורך:"
-#: ../libempathy-gtk/empathy-contact-widget.c:806
-#: ../libempathy-gtk/empathy-individual-widget.c:532
+#: ../libempathy-gtk/empathy-contact-widget.c:945
+#: ../libempathy-gtk/empathy-individual-widget.c:539
msgid "Latitude:"
msgstr "קו רוחב:"
-#: ../libempathy-gtk/empathy-contact-widget.c:808
-#: ../libempathy-gtk/empathy-individual-widget.c:534
+#: ../libempathy-gtk/empathy-contact-widget.c:947
+#: ../libempathy-gtk/empathy-individual-widget.c:541
msgid "Altitude:"
msgstr "גובה:"
-#: ../libempathy-gtk/empathy-contact-widget.c:861
-#: ../libempathy-gtk/empathy-contact-widget.c:876
-#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:631
+#: ../libempathy-gtk/empathy-contact-widget.c:1000
+#: ../libempathy-gtk/empathy-contact-widget.c:1015
+#: ../libempathy-gtk/empathy-individual-widget.c:629
+#: ../libempathy-gtk/empathy-individual-widget.c:644
#: ../src/empathy-preferences.ui.h:12
msgid "Location"
msgstr "מיקום"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:878
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-contact-widget.c:1017
+#: ../libempathy-gtk/empathy-individual-widget.c:646
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:930
-#: ../libempathy-gtk/empathy-individual-widget.c:682
+#: ../libempathy-gtk/empathy-contact-widget.c:1069
+#: ../libempathy-gtk/empathy-individual-widget.c:695
msgid "%B %e, %Y at %R UTC"
msgstr "‏%B %e, %Y ב־‏%R ‏UTC"
-#: ../libempathy-gtk/empathy-contact-widget.c:1012
-#: ../libempathy-gtk/empathy-individual-widget.c:917
+#: ../libempathy-gtk/empathy-contact-widget.c:1151
+#: ../libempathy-gtk/empathy-individual-widget.c:931
msgid "Save Avatar"
msgstr "שמירת תמונה אישית"
-#: ../libempathy-gtk/empathy-contact-widget.c:1068
-#: ../libempathy-gtk/empathy-individual-widget.c:975
+#: ../libempathy-gtk/empathy-contact-widget.c:1207
+#: ../libempathy-gtk/empathy-individual-widget.c:989
msgid "Unable to save avatar"
msgstr "לא ניתן לשמור תמונה אישית"
@@ -1912,7 +1967,7 @@ msgstr "<b>מיקום</b> ב(תאריך)\t"
#. Alias
#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1305
+#: ../libempathy-gtk/empathy-individual-widget.c:1321
msgid "Alias:"
msgstr "כינוי:"
@@ -1932,7 +1987,7 @@ msgstr "פרטי איש קשר"
#. Identifier to connect to Instant Messaging network
#. Translators: Identifier to connect to Instant Messaging network
#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1509
+#: ../libempathy-gtk/empathy-individual-widget.c:1525
msgid "Identifier:"
msgstr "מזהה:"
@@ -1949,11 +2004,11 @@ msgstr "מערכת הפעלה:"
msgid "Version:"
msgstr "גרסה:"
-#: ../libempathy-gtk/empathy-groups-widget.c:332
+#: ../libempathy-gtk/empathy-groups-widget.c:333
msgid "Groups"
msgstr "קבוצות"
-#: ../libempathy-gtk/empathy-groups-widget.c:344
+#: ../libempathy-gtk/empathy-groups-widget.c:345
msgid ""
"Select the groups you want this contact to appear in. Note that you can "
"select more than one group or no groups."
@@ -1961,80 +2016,80 @@ msgstr ""
"יש לבחור את הקבוצות בהן אתה מעוניין שאיש קשר זה יופיע. ניתן לבחור ביותר "
"מקבוצה אחת או לא לבחור קבוצות בכלל."
-#: ../libempathy-gtk/empathy-groups-widget.c:363
+#: ../libempathy-gtk/empathy-groups-widget.c:364
msgid "_Add Group"
msgstr "הוס_פת קבוצה"
-#: ../libempathy-gtk/empathy-groups-widget.c:398
+#: ../libempathy-gtk/empathy-groups-widget.c:399
msgctxt "verb in a column header displaying group names"
msgid "Select"
msgstr "בחירה"
-#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1770
+#: ../libempathy-gtk/empathy-groups-widget.c:409
+#: ../src/empathy-main-window.c:1751
msgid "Group"
msgstr "קבוצה"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:252
+#: ../libempathy-gtk/empathy-individual-dialogs.c:257
msgid "The following identity will be blocked:"
msgid_plural "The following identities will be blocked:"
msgstr[0] "הזהות הבאה תיחסם:"
msgstr[1] "בעלי הזהות הבאים ייחסמו:"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:259
+#: ../libempathy-gtk/empathy-individual-dialogs.c:264
msgid "The following identity can not be blocked:"
msgid_plural "The following identities can not be blocked:"
msgstr[0] "לא ניתן לחסום את הזהות הבאה:"
msgstr[1] "לא ניתן לחסום את בעלי הזהות הבאים:"
#. Translators: the heading at the top of the Information dialogue
-#: ../libempathy-gtk/empathy-individual-information-dialog.c:281
+#: ../libempathy-gtk/empathy-individual-information-dialog.c:288
msgid "Linked Contacts"
msgstr "אנשי קשר מקושרים"
-#: ../libempathy-gtk/empathy-individual-linker.c:354
+#: ../libempathy-gtk/empathy-individual-linker.c:370
msgid "Select contacts to link"
msgstr "בחירת אנשי קשר לקישור"
-#: ../libempathy-gtk/empathy-individual-linker.c:428
+#: ../libempathy-gtk/empathy-individual-linker.c:444
msgid "New contact preview"
msgstr "תצוגה מקדימה של איש קשר חדש"
-#: ../libempathy-gtk/empathy-individual-linker.c:472
+#: ../libempathy-gtk/empathy-individual-linker.c:488
msgid "Contacts selected in the list on the left will be linked together."
msgstr "אנשי הקשר שנבחרו ברשימה שמימין יקושרו זה לזה."
#. Translators: this is used in the context menu for a contact. The first
#. * parameter is a contact ID (e.g. foo@jabber.org) and the second is one
#. * of the user's account IDs (e.g. me@hotmail.com).
-#: ../libempathy-gtk/empathy-individual-menu.c:131
+#: ../libempathy-gtk/empathy-individual-menu.c:136
#, c-format
msgid "%s (%s)"
msgstr "%s (%s)"
#. add an SMS button
-#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-individual-menu.c:592
#: ../libempathy-gtk/empathy-new-message-dialog.c:248
msgid "_SMS"
msgstr "_SMS"
-#: ../libempathy-gtk/empathy-individual-menu.c:904
+#: ../libempathy-gtk/empathy-individual-menu.c:914
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "ע_ריכה"
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:930
+#: ../libempathy-gtk/empathy-individual-menu.c:940
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "_קישור אנשי קשר…"
-#: ../libempathy-gtk/empathy-individual-view.c:2351
+#: ../libempathy-gtk/empathy-individual-view.c:2332
msgid "Delete and _Block"
msgstr "מחיקה ו_חסימה"
-#: ../libempathy-gtk/empathy-individual-view.c:2517
+#: ../libempathy-gtk/empathy-individual-view.c:2501
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2043,7 +2098,7 @@ msgstr ""
"האם אכן ברצונך להסיר את איש הקשר המקושר '%s'? נא לשים לב שפעולה זו תסיר את "
"כל אנשי הקשר המתאגדים לאיש קשר מקושר זה."
-#: ../libempathy-gtk/empathy-individual-widget.c:1650
+#: ../libempathy-gtk/empathy-individual-widget.c:1672
#, c-format
msgid "Linked contact containing %u contact"
msgid_plural "Linked contacts containing %u contacts"
@@ -2311,23 +2366,23 @@ msgstr "שמירת הודעת המ_צב החדשה"
msgid "Saved Status Messages"
msgstr "הודעות המצב שנשמרו"
-#: ../libempathy-gtk/empathy-theme-adium.c:1468
+#: ../libempathy-gtk/empathy-theme-adium.c:1782
msgid "Normal"
msgstr "רגיל"
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:75
msgid "Classic"
msgstr "קלאסי"
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:76
msgid "Simple"
msgstr "פשוט"
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:77
msgid "Clean"
msgstr "נקי"
-#: ../libempathy-gtk/empathy-theme-manager.c:71
+#: ../libempathy-gtk/empathy-theme-manager.c:78
msgid "Blue"
msgstr "כחול"
@@ -2402,19 +2457,19 @@ msgstr "יש לזכור בחירה זו עבור חיבורים עתידיים"
msgid "Certificate Details"
msgstr "פרטי התעודה"
-#: ../libempathy-gtk/empathy-ui-utils.c:1705
+#: ../libempathy-gtk/empathy-ui-utils.c:1653
msgid "Unable to open URI"
msgstr "לא ניתן לפתוח את הכתובת"
-#: ../libempathy-gtk/empathy-ui-utils.c:1800
+#: ../libempathy-gtk/empathy-ui-utils.c:1748
msgid "Select a file"
msgstr "בחירת קובץ"
-#: ../libempathy-gtk/empathy-ui-utils.c:1872
+#: ../libempathy-gtk/empathy-ui-utils.c:1820
msgid "Insufficient free space to save file"
msgstr "אין די מקום פנוי לשמירת הקובץ"
-#: ../libempathy-gtk/empathy-ui-utils.c:1880
+#: ../libempathy-gtk/empathy-ui-utils.c:1828
#, c-format
msgid ""
"%s of free space are required to save this file, but only %s is available. "
@@ -2423,7 +2478,7 @@ msgstr ""
"נדרשים %s של מקום פנוי כדי לשמור קובץ זה, אך ישנם רק %s פנויים. נא לבחור "
"במיקום אחר."
-#: ../libempathy-gtk/empathy-ui-utils.c:1924
+#: ../libempathy-gtk/empathy-ui-utils.c:1872
#, c-format
msgid "Incoming file from %s"
msgstr "קובץ נכנס מ־%s"
@@ -2611,23 +2666,23 @@ msgstr "אין הודעת שגיאה"
msgid "Instant Message (Empathy)"
msgstr "הודעה מיידית (Empathy)"
-#: ../src/empathy.c:308
+#: ../src/empathy.c:307
msgid "Don't connect on startup"
msgstr "לא להתחבר בהפעלה"
-#: ../src/empathy.c:312
+#: ../src/empathy.c:311
msgid "Don't display the contact list or any other dialogs on startup"
msgstr "אין להציג את רשימת אנשי הקשר או כל דו־שיח אחר בהפעלה"
-#: ../src/empathy.c:320
+#: ../src/empathy.c:319
msgid "- Empathy IM Client"
msgstr "- לקוח המסרים המידיים Empathy"
-#: ../src/empathy.c:499
+#: ../src/empathy.c:498
msgid "Error contacting the Account Manager"
msgstr "שגיאה ביצירת קשר עם מנהל החשבונות"
-#: ../src/empathy.c:501
+#: ../src/empathy.c:500
#, c-format
msgid ""
"There was an error while trying to connect to the Telepathy Account Manager. "
@@ -3016,7 +3071,7 @@ msgstr "שיחה עם %s"
#. * title
#: ../src/empathy-streamed-media-window.c:1353
msgid "Call"
-msgstr "שיחה"
+msgstr "התקשרות"
#: ../src/empathy-streamed-media-window.c:1507
msgid "The IP address as seen by the machine"
@@ -3366,90 +3421,90 @@ msgstr "חיבור אוטומטי"
msgid "Manage Favorite Rooms"
msgstr "ניהול חדרי שיחה מועדפים"
-#: ../src/empathy-event-manager.c:505
+#: ../src/empathy-event-manager.c:510
msgid "Incoming video call"
msgstr "שיחה קולית נכנסת"
-#: ../src/empathy-event-manager.c:505
+#: ../src/empathy-event-manager.c:510
msgid "Incoming call"
msgstr "שיחה נכנסת"
-#: ../src/empathy-event-manager.c:509
+#: ../src/empathy-event-manager.c:514
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "‏%s מתקשר אליך עם וידאו, האם ברצונך לענות?"
-#: ../src/empathy-event-manager.c:510
+#: ../src/empathy-event-manager.c:515
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "‏%s מתקשר אליך, האם ברצונך לענות?"
-#: ../src/empathy-event-manager.c:513 ../src/empathy-event-manager.c:662
+#: ../src/empathy-event-manager.c:518 ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming call from %s"
msgstr "שיחה נכנסת מ־%s"
-#: ../src/empathy-event-manager.c:538
+#: ../src/empathy-event-manager.c:543
msgid "_Reject"
msgstr "_דחייה"
-#: ../src/empathy-event-manager.c:544
+#: ../src/empathy-event-manager.c:549
msgid "_Answer"
msgstr "_מענה"
-#: ../src/empathy-event-manager.c:662
+#: ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming video call from %s"
msgstr "שיחת וידאו נכנסת מ־%s"
-#: ../src/empathy-event-manager.c:735
+#: ../src/empathy-event-manager.c:740
msgid "Room invitation"
msgstr "הזמנה לחדר"
-#: ../src/empathy-event-manager.c:737
+#: ../src/empathy-event-manager.c:742
#, c-format
msgid "Invitation to join %s"
msgstr "הזמנה להצטרף ל־%s"
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:749
#, c-format
msgid "%s is inviting you to join %s"
msgstr "‏%s מזמין/ה אותך להצטרף אל %s"
-#: ../src/empathy-event-manager.c:752
+#: ../src/empathy-event-manager.c:757
msgid "_Decline"
msgstr "_סירוב"
-#: ../src/empathy-event-manager.c:757
+#: ../src/empathy-event-manager.c:762
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "ה_צטרפות"
-#: ../src/empathy-event-manager.c:784
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "%s invited you to join %s"
msgstr "‏%s הזמין/ה אותך להצטרף אל %s"
-#: ../src/empathy-event-manager.c:790
+#: ../src/empathy-event-manager.c:795
#, c-format
msgid "You have been invited to join %s"
msgstr "הוזמנת להצטרף אל %s"
-#: ../src/empathy-event-manager.c:841
+#: ../src/empathy-event-manager.c:846
#, c-format
msgid "Incoming file transfer from %s"
msgstr "העברת קבצים נכנסת מ־%s"
-#: ../src/empathy-event-manager.c:1011 ../src/empathy-main-window.c:377
+#: ../src/empathy-event-manager.c:1024 ../src/empathy-main-window.c:375
msgid "Password required"
msgstr "נדרשת ססמה"
-#: ../src/empathy-event-manager.c:1067
+#: ../src/empathy-event-manager.c:1080
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s רוצה הרשאות לצפייה מתי המשתמש שלך מחובר"
-#: ../src/empathy-event-manager.c:1071
+#: ../src/empathy-event-manager.c:1084
#, c-format
msgid ""
"\n"
@@ -3593,55 +3648,55 @@ msgstr "פרוטוקול"
msgid "Source"
msgstr "מקור"
-#: ../src/empathy-main-window.c:394
+#: ../src/empathy-main-window.c:392
msgid "Provide Password"
msgstr "הזנת ססמה"
-#: ../src/empathy-main-window.c:400
+#: ../src/empathy-main-window.c:398
msgid "Disconnect"
msgstr "ניתוק"
-#: ../src/empathy-main-window.c:540
+#: ../src/empathy-main-window.c:538
msgid "No match found"
msgstr "לא נמצאה התאמה"
-#: ../src/empathy-main-window.c:695
+#: ../src/empathy-main-window.c:693
msgid "Reconnect"
msgstr "התחברות מחדש"
-#: ../src/empathy-main-window.c:701
+#: ../src/empathy-main-window.c:699
msgid "Edit Account"
msgstr "עריכת חשבון"
-#: ../src/empathy-main-window.c:707
+#: ../src/empathy-main-window.c:705
msgid "Close"
msgstr "סגירה"
#. Translators: this string will be something like:
#. * Top up My Account ($1.23)..."
-#: ../src/empathy-main-window.c:849
+#: ../src/empathy-main-window.c:844
#, c-format
msgid "Top up %s (%s)..."
msgstr "Top up %s (%s)..."
-#: ../src/empathy-main-window.c:924
+#: ../src/empathy-main-window.c:891
msgid "Top up account credit"
msgstr "אשראי חשבון ה־Top up"
#. top up button
-#: ../src/empathy-main-window.c:999
+#: ../src/empathy-main-window.c:966
msgid "Top Up..."
msgstr "Top Up..."
-#: ../src/empathy-main-window.c:1752
+#: ../src/empathy-main-window.c:1733
msgid "Contact"
msgstr "איש קשר"
-#: ../src/empathy-main-window.c:2101
+#: ../src/empathy-main-window.c:2085
msgid "Contact List"
msgstr "רשימת אנשי קשר"
-#: ../src/empathy-main-window.c:2219
+#: ../src/empathy-main-window.c:2203
msgid "Show and edit accounts"
msgstr "הצגה ועריכה של חשבונות"
@@ -3803,79 +3858,79 @@ msgstr "רשימת חדרים"
msgid "_Room:"
msgstr "_חדר:"
-#: ../src/empathy-preferences.c:147
+#: ../src/empathy-preferences.c:156
msgid "Message received"
msgstr "התקבלה הודעה"
-#: ../src/empathy-preferences.c:148
+#: ../src/empathy-preferences.c:157
msgid "Message sent"
msgstr "הודעה נשלחה"
-#: ../src/empathy-preferences.c:149
+#: ../src/empathy-preferences.c:158
msgid "New conversation"
msgstr "שיחה חדשה"
-#: ../src/empathy-preferences.c:150
+#: ../src/empathy-preferences.c:159
msgid "Contact goes online"
msgstr "איש קשר מתחבר"
-#: ../src/empathy-preferences.c:151
+#: ../src/empathy-preferences.c:160
msgid "Contact goes offline"
msgstr "איש קשר מתנתק"
-#: ../src/empathy-preferences.c:152
+#: ../src/empathy-preferences.c:161
msgid "Account connected"
msgstr "חשבון מחובר"
-#: ../src/empathy-preferences.c:153
+#: ../src/empathy-preferences.c:162
msgid "Account disconnected"
msgstr "חשבון נותק"
-#: ../src/empathy-preferences.c:450
+#: ../src/empathy-preferences.c:459
msgid "Language"
msgstr "שפה"
#. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:700
+#: ../src/empathy-preferences.c:709
msgid "Juliet"
msgstr "יוליה"
#. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:707
+#: ../src/empathy-preferences.c:716
msgid "Romeo"
msgstr "רומיאו"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:713
+#: ../src/empathy-preferences.c:722
msgid "O Romeo, Romeo, wherefore art thou Romeo?"
msgstr "הו רומיאו, רומיאו, מן אין שבת רומיאו?"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:716
+#: ../src/empathy-preferences.c:725
msgid "Deny thy father and refuse thy name;"
msgstr "התכחש לאביך וסרב לשמו;"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:719
+#: ../src/empathy-preferences.c:728
msgid "Or if thou wilt not, be but sworn my love"
msgstr "או אם לא תסכים, אשבע לך באהבתי"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:722
+#: ../src/empathy-preferences.c:731
msgid "And I'll no longer be a Capulet."
msgstr "ולא אהיה עוד בת קפולט."
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:725
+#: ../src/empathy-preferences.c:734
msgid "Shall I hear more, or shall I speak at this?"
msgstr "האם דיברתי די או שמא אוסיף לדבר?"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:728
+#: ../src/empathy-preferences.c:737
msgid "Juliet has disconnected"
msgstr "יוליה התנתקה"
-#: ../src/empathy-preferences.c:962
+#: ../src/empathy-preferences.c:1131
msgid "Preferences"
msgstr "העדפות"
@@ -3975,13 +4030,13 @@ msgid ""
msgstr "ברשימת השפות מוצגות שפות שעבורן מותקנים אצלך מילונים."
#: ../src/empathy-preferences.ui.h:24
-msgid "Theme Variant:"
-msgstr "הגוון הערכה:"
-
-#: ../src/empathy-preferences.ui.h:25
msgid "Themes"
msgstr "ערכות נושא"
+#: ../src/empathy-preferences.ui.h:25
+msgid "Variant:"
+msgstr "הגוון:"
+
#: ../src/empathy-preferences.ui.h:26
msgid "_Automatically connect on startup"
msgstr "התחברות _אוטומטית עם ההפעלה"
@@ -4093,16 +4148,16 @@ msgid ""
"extension."
msgstr "מנהל החיבורים שנבחר אינו תומך בהרחבת ניפוי שגיאות מרחוק."
-#: ../src/empathy-invite-participant-dialog.c:34
-#: ../src/empathy-invite-participant-dialog.c:48
+#: ../src/empathy-invite-participant-dialog.c:429
+#: ../src/empathy-invite-participant-dialog.c:477
msgid "Invite Participant"
msgstr "הזמנת משתתפים"
-#: ../src/empathy-invite-participant-dialog.c:35
+#: ../src/empathy-invite-participant-dialog.c:430
msgid "Choose a contact to invite into the conversation:"
msgstr "נא לבחור אנשי קשר להזמנה לדיון:"
-#: ../src/empathy-invite-participant-dialog.c:45
+#: ../src/empathy-invite-participant-dialog.c:473
msgid "Invite"
msgstr "הזמנה"
diff --git a/po/nb.po b/po/nb.po
index 183b6ed3d..dad869aac 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: empathy 2.92.x\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-04 11:11+0200\n"
-"PO-Revision-Date: 2011-05-04 11:14+0200\n"
+"POT-Creation-Date: 2011-06-07 12:14+0200\n"
+"PO-Revision-Date: 2011-06-07 12:44+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: no\n"
@@ -211,172 +211,176 @@ msgid "Pop up notifications when a contact logs out"
msgstr "Vis varsling når en kontakt logger ut"
#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+msgid "Show Balance in contact list"
+msgstr "Vis saldo i kontaktliste"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
msgid "Show avatars"
msgstr "Vis personbilder"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
msgid "Show contact list in rooms"
msgstr "Vis kontaktliste i rom"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
msgid "Show hint about closing the main window"
msgstr "Vis hint om lukking av hovedvinduet"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
msgid "Show offline contacts"
msgstr "Vis frakoblede kontakter"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
msgid "Show protocols"
msgstr "Vis protokoller"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
msgid "Spell checking languages"
msgstr "Stavekontrollspråk"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
msgid "The default folder to save file transfers in."
msgstr "Forvalgt mappe for lagring av filoverføringer."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
msgid "The last directory that an avatar image was chosen from."
msgstr "Den forrige mappen et personbilde ble valgt fra."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
msgid "The position for the chat window side pane"
msgstr "Posisjon for pratevinduets sidelinje"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
msgid "The stored position (in pixels) of the chat window side pane."
msgstr "Lagret posisjon (i pikselr) for pratevinduets sideområde."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
msgid "The theme that is used to display the conversation in chat windows."
msgstr "Temaet som brukes til å vise samtaler."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
msgid "Use graphical smileys"
msgstr "Vis smilefjes grafisk"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
msgid "Use notification sounds"
msgstr "Bruk varslingslyder"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
msgid "Use theme for chat rooms"
msgstr "Bruk tema for samtalerom"
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
msgid "Whether Empathy can publish the user's location to their contacts."
msgstr "Om Empathy kan publisere brukers plassering til kontakter."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
msgid "Whether Empathy can use the GPS to guess the location."
msgstr "Om Empathy kan bruke GPS for å gjette plassering."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
msgid "Whether Empathy can use the cellular network to guess the location."
msgstr "Om Empathy kan bruke mobilnettverk for å gjette plassering."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
msgid "Whether Empathy can use the network to guess the location."
msgstr "Om Empathy kan bruke nettverket for å gjette plassering."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
msgid "Whether Empathy has migrated butterfly logs."
msgstr "Om Empathy har migrert logger for butterfly."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
msgid "Whether Empathy should automatically log into your accounts on startup."
msgstr "Om Empathy skal logge inn til dine kontoer automatisk ved oppstart."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
msgid ""
"Whether Empathy should go into away mode automatically if the user is idle."
msgstr ""
"Om Empathy skal bytte til bortemodus automatisk hvis bruker ikke er aktiv."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
msgid ""
"Whether Empathy should reduce the location's accuracy for privacy reasons."
msgstr ""
"Om Empathy skal redusere nøyaktighet for plassering av personvernhensyn."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
msgid ""
"Whether Empathy should use the avatar of the contact as the chat window icon."
msgstr ""
"Om Empathy skal bruke personbilde for kontakten som ikon for pratevinduet."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
msgid ""
"Whether WebKit developer tools, such as the Web Inspector, should be enabled."
msgstr "Om utviklerverktøy for WebKit, som Web Inspector, skal slås på."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
msgid ""
"Whether connectivity managers should be used to automatically disconnect/"
"reconnect."
msgstr "Om tilkoblingshåndterere skal brukes til å koble til/fra automatisk."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
msgid ""
"Whether to check words typed against the languages you want to check with."
msgstr "Om stavekontroll skal sjekke ord mot de språkene du ønsker å bruke."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
msgid "Whether to convert smileys into graphical images in conversations."
msgstr "Om smilefjes skal konverteres til grafiske bilder i samtaler."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
msgid "Whether to play a sound to notify of contacts logging into the network."
msgstr ""
"Om en lyd skal spilles av for å varsle om at kontakter logger inn på "
"nettverket."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
msgid ""
"Whether to play a sound to notify of contacts logging out of the network."
msgstr ""
"Om en lyd skal spilles av for å varsle at kontakter logger ut av nettverket."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
msgid "Whether to play a sound to notify of events."
msgstr "Om lyder skal spilles av for å varsle om hendelser."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
msgid "Whether to play a sound to notify of incoming messages."
msgstr "Om lyder skal spilles av for å varsle om innkommende meldinger."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
msgid "Whether to play a sound to notify of new conversations."
msgstr "Om lyder skal spilles av for å varsle om nye samtaler."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
msgid "Whether to play a sound to notify of outgoing messages."
msgstr "Om lyder skal spilles av for å varsle om utgående meldinger."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
msgid "Whether to play a sound when logging into a network."
msgstr "Om lyder skal spilles av når du logger inn på et nettverk."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
msgid "Whether to play a sound when logging out of a network."
msgstr "Om lyder skal spilles av når du logger ut av et nettverk."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
msgid "Whether to play sound notifications when away or busy."
msgstr "Om lyder skal spilles av når du er borte eller opptatt."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
msgid "Whether to show a popup notification when a contact goes offline."
msgstr "Om varsel skal vises når en kontakt kobler fra."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
msgid "Whether to show a popup notification when a contact goes online."
msgstr "Om et varsel skal vises når en kontakt er kobler fra."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
msgid ""
"Whether to show a popup notification when receiving a new message even if "
"the chat is already opened, but not focused."
@@ -384,36 +388,40 @@ msgstr ""
"Om varsling skal vises når en melding mottas selv om pratevinduet er åpent "
"men ikke har fokus."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
msgid "Whether to show a popup notification when receiving a new message."
msgstr "Om varsling skal vises når en ny melding mottas."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+msgid "Whether to show account balances in the contact list."
+msgstr "Om saldo for konto skal vises i kontaktlisten."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
msgid ""
"Whether to show avatars for contacts in the contact list and chat windows."
msgstr "Om bilder av kontakter skal vises i kontaktlisten og samtalevinduer."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
msgid "Whether to show contacts that are offline in the contact list."
msgstr "Om kontakter som er frakoblet skal vises i kontaktlisten."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
msgid "Whether to show popup notifications when away or busy."
msgstr "Om varsling skal vises når du er borte eller opptatt."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
msgid "Whether to show protocols for contacts in the contact list."
msgstr "Om protokoller for kontakter skal vises i kontaktlisten."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
msgid "Whether to show the contact list in chat rooms."
msgstr "Om kontaktlisten skal vises i praterom."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
msgid "Whether to show the contact list in compact mode."
msgstr "Om kontaktlisten skal vises i kompakt modus."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
msgid ""
"Whether to show the message dialog about closing the main window with the "
"'x' button in the title bar."
@@ -421,11 +429,11 @@ msgstr ""
"Om meldingsdialog om lukking av vinduet med «x»-knappen i tittelfeltet skal "
"vises."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
msgid "Whether to use the theme for chat rooms."
msgstr "Om tema skal brukes for praterom eller ikke."
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
msgid ""
"Which criterion to use when sorting the contact list. Default is to sort by "
"the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -441,7 +449,7 @@ msgstr "Håndter meldings- og VoIP-kontoer"
#. Tweak the dialog
#: ../data/empathy-accounts.desktop.in.in.h:2
-#: ../src/empathy-accounts-dialog.c:2340
+#: ../src/empathy-accounts-dialog.c:2320
msgid "Messaging and VoIP Accounts"
msgstr "Meldings- og VoIP-kontoer"
@@ -489,141 +497,141 @@ msgstr "Feil under overføring av filen"
msgid "The other participant is unable to transfer the file"
msgstr "Avsender kan ikke overføre filen"
-#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:383
+#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:384
msgid "Unknown reason"
msgstr "Ukjent årsak"
-#: ../libempathy/empathy-utils.c:304
+#: ../libempathy/empathy-utils.c:305
msgid "Available"
msgstr "Tilgjengelig"
-#: ../libempathy/empathy-utils.c:306
+#: ../libempathy/empathy-utils.c:307
msgid "Busy"
msgstr "Opptatt"
-#: ../libempathy/empathy-utils.c:309
+#: ../libempathy/empathy-utils.c:310
msgid "Away"
msgstr "Borte"
-#: ../libempathy/empathy-utils.c:311
+#: ../libempathy/empathy-utils.c:312
msgid "Invisible"
msgstr "Usynlig"
-#: ../libempathy/empathy-utils.c:313
+#: ../libempathy/empathy-utils.c:314
msgid "Offline"
msgstr "Frakoblet"
#. translators: presence type is unknown
-#: ../libempathy/empathy-utils.c:316
+#: ../libempathy/empathy-utils.c:317
msgctxt "presence"
msgid "Unknown"
msgstr "Ukjent"
-#: ../libempathy/empathy-utils.c:355
+#: ../libempathy/empathy-utils.c:356
msgid "No reason specified"
msgstr "Ingen årsak oppgitt"
-#: ../libempathy/empathy-utils.c:357 ../libempathy/empathy-utils.c:413
+#: ../libempathy/empathy-utils.c:358 ../libempathy/empathy-utils.c:414
msgid "Status is set to offline"
msgstr "Status er satt til frakoblet"
-#: ../libempathy/empathy-utils.c:359 ../libempathy/empathy-utils.c:393
+#: ../libempathy/empathy-utils.c:360 ../libempathy/empathy-utils.c:394
msgid "Network error"
msgstr "Nettverksfeil"
-#: ../libempathy/empathy-utils.c:361 ../libempathy/empathy-utils.c:395
+#: ../libempathy/empathy-utils.c:362 ../libempathy/empathy-utils.c:396
msgid "Authentication failed"
msgstr "Autentiseringen feilet"
-#: ../libempathy/empathy-utils.c:363 ../libempathy/empathy-utils.c:397
+#: ../libempathy/empathy-utils.c:364 ../libempathy/empathy-utils.c:398
msgid "Encryption error"
msgstr "Krypteringsfeil"
-#: ../libempathy/empathy-utils.c:365
+#: ../libempathy/empathy-utils.c:366
msgid "Name in use"
msgstr "Navn i bruk"
-#: ../libempathy/empathy-utils.c:367 ../libempathy/empathy-utils.c:399
+#: ../libempathy/empathy-utils.c:368 ../libempathy/empathy-utils.c:400
msgid "Certificate not provided"
msgstr "Sertifikat ikke oppgitt"
-#: ../libempathy/empathy-utils.c:369 ../libempathy/empathy-utils.c:401
+#: ../libempathy/empathy-utils.c:370 ../libempathy/empathy-utils.c:402
msgid "Certificate untrusted"
msgstr "Stoler ikke på sertifikat"
-#: ../libempathy/empathy-utils.c:371 ../libempathy/empathy-utils.c:403
+#: ../libempathy/empathy-utils.c:372 ../libempathy/empathy-utils.c:404
msgid "Certificate expired"
msgstr "Sertifikat utgått"
-#: ../libempathy/empathy-utils.c:373 ../libempathy/empathy-utils.c:405
+#: ../libempathy/empathy-utils.c:374 ../libempathy/empathy-utils.c:406
msgid "Certificate not activated"
msgstr "Sertifikat ikke aktivert"
-#: ../libempathy/empathy-utils.c:375 ../libempathy/empathy-utils.c:407
+#: ../libempathy/empathy-utils.c:376 ../libempathy/empathy-utils.c:408
msgid "Certificate hostname mismatch"
msgstr "Feil vertsnavn i forhold til sertifikat"
-#: ../libempathy/empathy-utils.c:377 ../libempathy/empathy-utils.c:409
+#: ../libempathy/empathy-utils.c:378 ../libempathy/empathy-utils.c:410
msgid "Certificate fingerprint mismatch"
msgstr "Fingeravtrykk stemmer ikke for sertifikat"
-#: ../libempathy/empathy-utils.c:379 ../libempathy/empathy-utils.c:411
+#: ../libempathy/empathy-utils.c:380 ../libempathy/empathy-utils.c:412
msgid "Certificate self-signed"
msgstr "Selvsignert sertifikat"
-#: ../libempathy/empathy-utils.c:381
+#: ../libempathy/empathy-utils.c:382
msgid "Certificate error"
msgstr "Sertifikatsfeil"
-#: ../libempathy/empathy-utils.c:415
+#: ../libempathy/empathy-utils.c:416
msgid "Encryption is not available"
msgstr "Kryptering er ikke tilgjengelig"
-#: ../libempathy/empathy-utils.c:417
+#: ../libempathy/empathy-utils.c:418
msgid "Certificate is invalid"
msgstr "Sertifikatet ikke ugyldig"
-#: ../libempathy/empathy-utils.c:419
+#: ../libempathy/empathy-utils.c:420
msgid "Connection has been refused"
msgstr "Tilkobling nektes"
-#: ../libempathy/empathy-utils.c:421
+#: ../libempathy/empathy-utils.c:422
msgid "Connection can't be established"
msgstr "Tilkobling kan ikke etableres"
-#: ../libempathy/empathy-utils.c:423
+#: ../libempathy/empathy-utils.c:424
msgid "Connection has been lost"
msgstr "Tilkobling mistet"
-#: ../libempathy/empathy-utils.c:425
+#: ../libempathy/empathy-utils.c:426
msgid "This resource is already connected to the server"
msgstr "Denne ressursen er allerede koblet til tjeneren"
-#: ../libempathy/empathy-utils.c:427
+#: ../libempathy/empathy-utils.c:428
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Tilkoblingen er erstattet med en ny tilkobling som bruker samme ressurs"
-#: ../libempathy/empathy-utils.c:430
+#: ../libempathy/empathy-utils.c:431
msgid "The account already exists on the server"
msgstr "Kontoen eksisterer allerede på tjeneren"
-#: ../libempathy/empathy-utils.c:432
+#: ../libempathy/empathy-utils.c:433
msgid "Server is currently too busy to handle the connection"
msgstr "Tjeneren er for opptatt til å håndtere tilkoblingen"
-#: ../libempathy/empathy-utils.c:434
+#: ../libempathy/empathy-utils.c:435
msgid "Certificate has been revoked"
msgstr "Sertifikatet er trukket tilbake"
-#: ../libempathy/empathy-utils.c:436
+#: ../libempathy/empathy-utils.c:437
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Sertifikatet bruker en usikker cipher-algoritme eller er kryptografisk svakt"
-#: ../libempathy/empathy-utils.c:439
+#: ../libempathy/empathy-utils.c:440
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -631,66 +639,66 @@ msgstr ""
"Lengden på tjenersertifikatet eller dybden på sertifikatkjeden på tjeneren "
"oversteg grensen som settes av kryptografibiblioteket"
-#: ../libempathy/empathy-utils.c:602
+#: ../libempathy/empathy-utils.c:603
#: ../libempathy-gtk/empathy-contact-list-store.h:73
msgid "People Nearby"
msgstr "Personer i nærheten"
-#: ../libempathy/empathy-utils.c:607
+#: ../libempathy/empathy-utils.c:608
msgid "Yahoo! Japan"
msgstr "Yahoo! Japan"
-#: ../libempathy/empathy-utils.c:636
+#: ../libempathy/empathy-utils.c:637
msgid "Google Talk"
msgstr "Google Talk"
-#: ../libempathy/empathy-utils.c:637
+#: ../libempathy/empathy-utils.c:638
msgid "Facebook Chat"
msgstr "Facebook-prat"
-#: ../libempathy/empathy-time.c:100
+#: ../libempathy/empathy-time.c:88
#, c-format
msgid "%d second ago"
msgid_plural "%d seconds ago"
msgstr[0] "%d sekund siden"
msgstr[1] "%d sekunder siden"
-#: ../libempathy/empathy-time.c:105
+#: ../libempathy/empathy-time.c:93
#, c-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d minutt siden"
msgstr[1] "%d minutter siden"
-#: ../libempathy/empathy-time.c:110
+#: ../libempathy/empathy-time.c:98
#, c-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d time siden"
msgstr[1] "%d timer siden"
-#: ../libempathy/empathy-time.c:115
+#: ../libempathy/empathy-time.c:103
#, c-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d dag siden"
msgstr[1] "%d dager siden"
-#: ../libempathy/empathy-time.c:120
+#: ../libempathy/empathy-time.c:108
#, c-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d uke siden"
msgstr[1] "%d uker siden"
-#: ../libempathy/empathy-time.c:125
+#: ../libempathy/empathy-time.c:113
#, c-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d måned siden"
msgstr[1] "%d måneder siden"
-#: ../libempathy/empathy-time.c:130
+#: ../libempathy/empathy-time.c:136
msgid "in the future"
msgstr "i fremtiden"
@@ -698,67 +706,67 @@ msgstr "i fremtiden"
msgid "All"
msgstr "Alle"
-#: ../libempathy-gtk/empathy-account-widget.c:678
+#: ../libempathy-gtk/empathy-account-widget.c:681
#: ../libempathy-gtk/empathy-log-window.c:643
#: ../src/empathy-import-widget.c:321
msgid "Account"
msgstr "Konto"
-#: ../libempathy-gtk/empathy-account-widget.c:679
+#: ../libempathy-gtk/empathy-account-widget.c:682
msgid "Password"
msgstr "Passord"
-#: ../libempathy-gtk/empathy-account-widget.c:680
+#: ../libempathy-gtk/empathy-account-widget.c:683
#: ../libempathy-gtk/empathy-irc-network-dialog.c:507
msgid "Server"
msgstr "Tjener"
-#: ../libempathy-gtk/empathy-account-widget.c:681
+#: ../libempathy-gtk/empathy-account-widget.c:684
#: ../libempathy-gtk/empathy-irc-network-dialog.c:522
msgid "Port"
msgstr "Port"
-#: ../libempathy-gtk/empathy-account-widget.c:753
-#: ../libempathy-gtk/empathy-account-widget.c:810
+#: ../libempathy-gtk/empathy-account-widget.c:756
+#: ../libempathy-gtk/empathy-account-widget.c:813
#, c-format
msgid "%s:"
msgstr "%s:"
-#: ../libempathy-gtk/empathy-account-widget.c:1151
+#: ../libempathy-gtk/empathy-account-widget.c:1154
#, c-format
msgid "The account %s is edited via My Web Accounts."
msgstr "Konto %s er redigert via Mine nettkontoer."
-#: ../libempathy-gtk/empathy-account-widget.c:1157
+#: ../libempathy-gtk/empathy-account-widget.c:1160
#, c-format
msgid "The account %s cannot be edited in Empathy."
msgstr "Konto %s kan ikke redigeres i Empathy."
-#: ../libempathy-gtk/empathy-account-widget.c:1177
+#: ../libempathy-gtk/empathy-account-widget.c:1180
msgid "Launch My Web Accounts"
msgstr "Start Mine nettkontoer"
-#: ../libempathy-gtk/empathy-account-widget.c:1515
+#: ../libempathy-gtk/empathy-account-widget.c:1518
msgid "Username:"
msgstr "Brukernavn:"
-#: ../libempathy-gtk/empathy-account-widget.c:1833
+#: ../libempathy-gtk/empathy-account-widget.c:1836
msgid "A_pply"
msgstr "_Bruk"
-#: ../libempathy-gtk/empathy-account-widget.c:1863
+#: ../libempathy-gtk/empathy-account-widget.c:1866
msgid "L_og in"
msgstr "L_ogg inn"
-#: ../libempathy-gtk/empathy-account-widget.c:1937
+#: ../libempathy-gtk/empathy-account-widget.c:1940
msgid "This account already exists on the server"
msgstr "Denne kontoen eksisterer allerede på tjeneren"
-#: ../libempathy-gtk/empathy-account-widget.c:1940
+#: ../libempathy-gtk/empathy-account-widget.c:1943
msgid "Create a new account on the server"
msgstr "Lag en ny konto på tjeneren"
-#: ../libempathy-gtk/empathy-account-widget.c:2132
+#: ../libempathy-gtk/empathy-account-widget.c:2135
msgid "Ca_ncel"
msgstr "A_vbryt"
@@ -804,7 +812,7 @@ msgstr "Avansert"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:5
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:8
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:4
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:5
msgid "Pass_word:"
msgstr "_Passord:"
@@ -814,7 +822,7 @@ msgstr "_Passord:"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:6
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:10
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:5
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
msgid "Remember Password"
msgstr "Husk passord"
@@ -824,7 +832,7 @@ msgstr "Husk passord"
#: ../libempathy-gtk/empathy-account-widget-icq.ui.h:7
#: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:11
#: ../libempathy-gtk/empathy-account-widget-msn.ui.h:6
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:16
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
#: ../libempathy-gtk/empathy-account-widget-yahoo.ui.h:6
#: ../libempathy-gtk/empathy-password-dialog.c:311
msgid "Remember password"
@@ -900,36 +908,36 @@ msgstr "Hva er din UIN for ICQ?"
msgid "What is your ICQ password?"
msgstr "Hva er ditt passord for ICQ?"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:183
-#: ../libempathy-gtk/empathy-account-widget-sip.c:216
+#: ../libempathy-gtk/empathy-account-widget-sip.c:184
+#: ../libempathy-gtk/empathy-account-widget-sip.c:217
msgid "Auto"
msgstr "Auto"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:186
+#: ../libempathy-gtk/empathy-account-widget-sip.c:187
msgid "UDP"
msgstr "UDP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:189
+#: ../libempathy-gtk/empathy-account-widget-sip.c:190
msgid "TCP"
msgstr "TCP"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:192
+#: ../libempathy-gtk/empathy-account-widget-sip.c:193
msgid "TLS"
msgstr "TLS"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:221
+#: ../libempathy-gtk/empathy-account-widget-sip.c:222
msgid "Register"
msgstr "Register"
#. translators: this string is very specific to SIP's internal; maybe
#. * best to keep the English version.
-#: ../libempathy-gtk/empathy-account-widget-sip.c:226
+#: ../libempathy-gtk/empathy-account-widget-sip.c:227
msgid "Options"
msgstr "Alternativer"
-#: ../libempathy-gtk/empathy-account-widget-sip.c:229
+#: ../libempathy-gtk/empathy-account-widget-sip.c:230
msgid "None"
msgstr "Ingen"
@@ -1103,58 +1111,63 @@ msgid "Discover the STUN server automatically"
msgstr "Søk opp STUN-tjener automatisk"
#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6
+msgid "Ignore TLS Errors"
+msgstr "Overse TLS-feil"
+
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
msgid "Interval (seconds)"
msgstr "Intervall (sekunder)"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
msgid "Keep-Alive Options"
msgstr "Alternativer for Keep-Alive"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
msgid "Loose Routing"
msgstr "Løs ruting"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
msgid "Mechanism:"
msgstr "Mekanisme:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
msgid "Miscellaneous Options"
msgstr "Forskjellige alternativer"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12
msgid "NAT Traversal Options"
msgstr "Alternativer for NAT"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
msgid "Port:"
msgstr "Port:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15
msgid "Proxy Options"
msgstr "Alternativer for proxy"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
msgid "STUN Server:"
msgstr "STUN-tjener:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-contact-widget.c:347
msgid "Server:"
msgstr "Tjener:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
msgid "Transport:"
msgstr "Transport:"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
msgid "What is your SIP account password?"
msgstr "Hva er passordet for din SIP-konto?"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:21
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
msgid "What is your SIP login ID?"
msgstr "Hva er din påloggings-ID for SIP?"
-#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22
+#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23
msgid "_Username:"
msgstr "Br_ukernavn:"
@@ -1178,28 +1191,36 @@ msgstr "Yahoo!-I_D:"
msgid "_Room List locale:"
msgstr "Locale for _romliste:"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:448
-#: ../libempathy-gtk/empathy-avatar-chooser.c:524
+#: ../libempathy-gtk/empathy-avatar-chooser.c:474
+#: ../libempathy-gtk/empathy-avatar-chooser.c:559
msgid "Couldn't convert image"
msgstr "Kunne ikke konvertere bilde"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:449
+#: ../libempathy-gtk/empathy-avatar-chooser.c:475
msgid "None of the accepted image formats are supported on your system"
msgstr "Ingen av de godkjente bildeformatene støttes av ditt system"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:930
+#: ../libempathy-gtk/empathy-avatar-chooser.c:822
+msgid "Couldn't save pixbuf to png"
+msgstr "Kunne ikke lagre bildedata til png"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:938
msgid "Select Your Avatar Image"
msgstr "Velg personbilde"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:933
+#: ../libempathy-gtk/empathy-avatar-chooser.c:942
+msgid "Take a picture..."
+msgstr "Ta et bilde …"
+
+#: ../libempathy-gtk/empathy-avatar-chooser.c:945
msgid "No Image"
msgstr "Ingen bilde"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:995
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1005
msgid "Images"
msgstr "Bilder"
-#: ../libempathy-gtk/empathy-avatar-chooser.c:999
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1009
msgid "All Files"
msgstr "Alle filer"
@@ -1207,35 +1228,40 @@ msgstr "Alle filer"
msgid "Click to enlarge"
msgstr "Klikk for å forstørre"
-#: ../libempathy-gtk/empathy-chat.c:652
+#: ../libempathy-gtk/empathy-chat.c:695
msgid "Failed to open private chat"
msgstr "Klarte ikke å åpne privat prat"
-#: ../libempathy-gtk/empathy-chat.c:717
+#: ../libempathy-gtk/empathy-chat.c:756
msgid "Topic not supported on this conversation"
msgstr "Emne er ikke støttet for denne samtalen"
-#: ../libempathy-gtk/empathy-chat.c:723
+#: ../libempathy-gtk/empathy-chat.c:762
msgid "You are not allowed to change the topic"
msgstr "Du har ikke lov til å bytte emne"
-#: ../libempathy-gtk/empathy-chat.c:932
+#: ../libempathy-gtk/empathy-chat.c:966
+#, c-format
+msgid "“%s” is not a valid contact ID"
+msgstr "«%s» er ikke en gyldig kontakt-ID"
+
+#: ../libempathy-gtk/empathy-chat.c:1023
msgid "/clear: clear all messages from the current conversation"
msgstr "/clear: tøm alle meldinger fra aktiv samtale"
-#: ../libempathy-gtk/empathy-chat.c:935
+#: ../libempathy-gtk/empathy-chat.c:1026
msgid "/topic <topic>: set the topic of the current conversation"
msgstr "/topic <emne>: sett emne for aktiv samtale"
-#: ../libempathy-gtk/empathy-chat.c:938
+#: ../libempathy-gtk/empathy-chat.c:1029
msgid "/join <chat room ID>: join a new chat room"
msgstr "/join <ID for praterom>: bli med i et nytt praterom"
-#: ../libempathy-gtk/empathy-chat.c:941
+#: ../libempathy-gtk/empathy-chat.c:1032
msgid "/j <chat room ID>: join a new chat room"
msgstr "/j <prateroms-ID>: bli med i et nytt praterom"
-#: ../libempathy-gtk/empathy-chat.c:946
+#: ../libempathy-gtk/empathy-chat.c:1036
msgid ""
"/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
"current one"
@@ -1243,23 +1269,23 @@ msgstr ""
"/part [<praterom-ID>] [<årsak>]: forlat praterommet, forvalg er det aktive "
"rommet"
-#: ../libempathy-gtk/empathy-chat.c:951
+#: ../libempathy-gtk/empathy-chat.c:1040
msgid "/query <contact ID> [<message>]: open a private chat"
msgstr "/query <kontakt-ID> [<melding>]: åpne en privat samtale"
-#: ../libempathy-gtk/empathy-chat.c:954
+#: ../libempathy-gtk/empathy-chat.c:1043
msgid "/msg <contact ID> <message>: open a private chat"
msgstr "/msg <kontakt-ID> <melding>: åpne en privat samtale"
-#: ../libempathy-gtk/empathy-chat.c:957
+#: ../libempathy-gtk/empathy-chat.c:1046
msgid "/nick <nickname>: change your nickname on the current server"
msgstr "/nick <kallenavn>: bytt kallenavn på denne tjeneren"
-#: ../libempathy-gtk/empathy-chat.c:960
+#: ../libempathy-gtk/empathy-chat.c:1049
msgid "/me <message>: send an ACTION message to the current conversation"
msgstr "/me <melding>: send en HANDLINGS-melding til aktiv samtale"
-#: ../libempathy-gtk/empathy-chat.c:963
+#: ../libempathy-gtk/empathy-chat.c:1052
msgid ""
"/say <message>: send <message> to the current conversation. This is used to "
"send a message starting with a '/'. For example: \"/say /join is used to "
@@ -1269,7 +1295,11 @@ msgstr ""
"sende en melding som starter med tegnet «/». For eksempel: «/say /join "
"brukes til å bli med i et nytt praterom»"
-#: ../libempathy-gtk/empathy-chat.c:968
+#: ../libempathy-gtk/empathy-chat.c:1057
+msgid "/whois <contact ID>: display information about a contact"
+msgstr "/whois <kontakt-ID>: vis informasjon om en kontakt"
+
+#: ../libempathy-gtk/empathy-chat.c:1060
msgid ""
"/help [<command>]: show all supported commands. If <command> is defined, "
"show its usage."
@@ -1277,103 +1307,113 @@ msgstr ""
"/help [<kommando>]: vis alle støttede kommandoer. Vis hjelp for <kommando> "
"hvis den er definert."
-#: ../libempathy-gtk/empathy-chat.c:978
+#: ../libempathy-gtk/empathy-chat.c:1070
#, c-format
msgid "Usage: %s"
msgstr "Bruk: %s"
-#: ../libempathy-gtk/empathy-chat.c:1017
+#: ../libempathy-gtk/empathy-chat.c:1109
msgid "Unknown command"
msgstr "Ukjent kommando"
-#: ../libempathy-gtk/empathy-chat.c:1143
+#: ../libempathy-gtk/empathy-chat.c:1235
msgid "Unknown command; see /help for the available commands"
msgstr "Ukjent kommando; se /help for tilgjengelige kommandoer"
-#: ../libempathy-gtk/empathy-chat.c:1281
+#. translators: error used when user doesn't have enough credit on his
+#. * account to send the message.
+#: ../libempathy-gtk/empathy-chat.c:1393
+msgid "insufficient balance to send message"
+msgstr "ikke nok kreditt til å sende melding"
+
+#: ../libempathy-gtk/empathy-chat.c:1395
+msgid "not capable"
+msgstr "ikke kapabel"
+
+#: ../libempathy-gtk/empathy-chat.c:1402
msgid "offline"
msgstr "frakoblet"
-#: ../libempathy-gtk/empathy-chat.c:1284
+#: ../libempathy-gtk/empathy-chat.c:1405
msgid "invalid contact"
msgstr "ugyldig kontakt"
-#: ../libempathy-gtk/empathy-chat.c:1287
+#: ../libempathy-gtk/empathy-chat.c:1408
msgid "permission denied"
msgstr "tilgang nektet"
-#: ../libempathy-gtk/empathy-chat.c:1290
+#: ../libempathy-gtk/empathy-chat.c:1411
msgid "too long message"
msgstr "meldingen er for lang"
-#: ../libempathy-gtk/empathy-chat.c:1293
+#: ../libempathy-gtk/empathy-chat.c:1414
msgid "not implemented"
msgstr "ikke implementert"
-#: ../libempathy-gtk/empathy-chat.c:1297
+#: ../libempathy-gtk/empathy-chat.c:1418
msgid "unknown"
msgstr "ukjent"
-#: ../libempathy-gtk/empathy-chat.c:1302
+#: ../libempathy-gtk/empathy-chat.c:1424
#, c-format
msgid "Error sending message '%s': %s"
msgstr "Feil ved sending av melding «%s»: %s"
-#: ../libempathy-gtk/empathy-chat.c:1306
+#: ../libempathy-gtk/empathy-chat.c:1428
#, c-format
msgid "Error sending message: %s"
msgstr "Feil ved sending av melding: %s"
-#: ../libempathy-gtk/empathy-chat.c:1367 ../src/empathy-chat-window.c:717
+#: ../libempathy-gtk/empathy-chat.c:1489 ../src/empathy-chat-window.c:760
msgid "Topic:"
msgstr "Emne:"
-#: ../libempathy-gtk/empathy-chat.c:1379
+#: ../libempathy-gtk/empathy-chat.c:1501
#, c-format
msgid "Topic set to: %s"
msgstr "Emnet er satt til: %s"
-#: ../libempathy-gtk/empathy-chat.c:1381
+#: ../libempathy-gtk/empathy-chat.c:1503
msgid "No topic defined"
msgstr "Emne ikke definert"
-#: ../libempathy-gtk/empathy-chat.c:1888
+#: ../libempathy-gtk/empathy-chat.c:2010
msgid "(No Suggestions)"
msgstr "(Ingen forslag)"
#. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:1956
+#: ../libempathy-gtk/empathy-chat.c:2078
#, c-format
msgid "Add '%s' to Dictionary"
msgstr "Legg til «%s» i ordboken"
#. translators: first %s is the selected word,
#. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:1993
+#: ../libempathy-gtk/empathy-chat.c:2115
#, c-format
msgid "Add '%s' to %s Dictionary"
msgstr "Legg til «%s» i ordbok for %s"
-#: ../libempathy-gtk/empathy-chat.c:2050
+#: ../libempathy-gtk/empathy-chat.c:2172
msgid "Insert Smiley"
msgstr "Sett inn smilefjes"
#. send button
-#: ../libempathy-gtk/empathy-chat.c:2068
-#: ../libempathy-gtk/empathy-ui-utils.c:1808
+#: ../libempathy-gtk/empathy-chat.c:2190
+#: ../libempathy-gtk/empathy-ui-utils.c:1756
msgid "_Send"
msgstr "_Send"
#. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2103
+#: ../libempathy-gtk/empathy-chat.c:2225
msgid "_Spelling Suggestions"
msgstr "_Staveforslag"
-#: ../libempathy-gtk/empathy-chat.c:2192
+#: ../libempathy-gtk/empathy-chat.c:2314
msgid "Failed to retrieve recent logs"
msgstr "Klarte ikke å hente siste logger"
-#: ../libempathy-gtk/empathy-chat.c:2303
+#: ../libempathy-gtk/empathy-chat.c:2425
#, c-format
msgid "%s has disconnected"
msgstr "%s har koblet fra"
@@ -1381,12 +1421,12 @@ msgstr "%s har koblet fra"
#. translators: reverse the order of these arguments
#. * if the kicked should come before the kicker in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2310
+#: ../libempathy-gtk/empathy-chat.c:2432
#, c-format
msgid "%1$s was kicked by %2$s"
msgstr "%1$s ble sparket av %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2313
+#: ../libempathy-gtk/empathy-chat.c:2435
#, c-format
msgid "%s was kicked"
msgstr "%s ble sparket"
@@ -1394,17 +1434,17 @@ msgstr "%s ble sparket"
#. translators: reverse the order of these arguments
#. * if the banned should come before the banner in your locale.
#.
-#: ../libempathy-gtk/empathy-chat.c:2321
+#: ../libempathy-gtk/empathy-chat.c:2443
#, c-format
msgid "%1$s was banned by %2$s"
msgstr "%1$s ble bannlyst av %2$s"
-#: ../libempathy-gtk/empathy-chat.c:2324
+#: ../libempathy-gtk/empathy-chat.c:2446
#, c-format
msgid "%s was banned"
msgstr "%s ble bannlyst"
-#: ../libempathy-gtk/empathy-chat.c:2328
+#: ../libempathy-gtk/empathy-chat.c:2450
#, c-format
msgid "%s has left the room"
msgstr "%s har forlatt rommet"
@@ -1414,95 +1454,102 @@ msgstr "%s har forlatt rommet"
#. * given by the user living the room. If this poses a problem,
#. * please let us know. :-)
#.
-#: ../libempathy-gtk/empathy-chat.c:2337
+#: ../libempathy-gtk/empathy-chat.c:2459
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: ../libempathy-gtk/empathy-chat.c:2362
+#: ../libempathy-gtk/empathy-chat.c:2484
#, c-format
msgid "%s has joined the room"
msgstr "%s har blitt med i rommet"
-#: ../libempathy-gtk/empathy-chat.c:2387
+#: ../libempathy-gtk/empathy-chat.c:2509
#, c-format
msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s"
-#: ../libempathy-gtk/empathy-chat.c:2526
+#: ../libempathy-gtk/empathy-chat.c:2648
#: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1126
+#: ../src/empathy-event-manager.c:1130
msgid "Disconnected"
msgstr "Koblet fra"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3158
+#: ../libempathy-gtk/empathy-chat.c:3316
msgid "Would you like to store this password?"
msgstr "Vil du lagre dette passordet?"
-#: ../libempathy-gtk/empathy-chat.c:3164
+#: ../libempathy-gtk/empathy-chat.c:3322
msgid "Remember"
msgstr "Husk"
-#: ../libempathy-gtk/empathy-chat.c:3174
+#: ../libempathy-gtk/empathy-chat.c:3332
msgid "Not now"
msgstr "Ikke nå"
-#: ../libempathy-gtk/empathy-chat.c:3218
+#: ../libempathy-gtk/empathy-chat.c:3376
msgid "Retry"
msgstr "Prøv igjen"
-#: ../libempathy-gtk/empathy-chat.c:3222
+#: ../libempathy-gtk/empathy-chat.c:3380
msgid "Wrong password; please try again:"
msgstr "Feil passord; vennligst prøv igjen:"
#. Add message
-#: ../libempathy-gtk/empathy-chat.c:3339
+#: ../libempathy-gtk/empathy-chat.c:3510
msgid "This room is protected by a password:"
msgstr "Dette rommet er beskyttet med et passord:"
-#: ../libempathy-gtk/empathy-chat.c:3366
+#: ../libempathy-gtk/empathy-chat.c:3537
msgid "Join"
msgstr "Bli med"
-#: ../libempathy-gtk/empathy-chat.c:3536 ../src/empathy-event-manager.c:1147
+#: ../libempathy-gtk/empathy-chat.c:3738 ../src/empathy-event-manager.c:1151
msgid "Connected"
msgstr "Koblet til"
-#: ../libempathy-gtk/empathy-chat.c:3589
+#: ../libempathy-gtk/empathy-chat.c:3793
#: ../libempathy-gtk/empathy-log-window.c:650
msgid "Conversation"
msgstr "Samtale"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422
+#. Translators: this string is a something like
+#. * "Escher Cat (SMS)"
+#: ../libempathy-gtk/empathy-chat.c:3798
+#, c-format
+msgid "%s (SMS)"
+msgstr "%s (SMS)"
+
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:423
msgid "Unknown or invalid identifier"
msgstr "Ukjent eller ugyldig identifikator"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:425
msgid "Contact blocking temporarily unavailable"
msgstr "Blokkering av kontakter midlertidig utilgjengelig"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:427
msgid "Contact blocking unavailable"
msgstr "Blokkering av kontakter er ikke tilgjengelig"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:429
msgid "Permission Denied"
msgstr "Tilgang nektet"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:433
msgid "Could not block contact"
msgstr "Kunne ikke blokkere kontakt"
-#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701
+#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:702
msgid "Edit Blocked Contacts"
msgstr "Rediger blokkerte kontakter"
#. Account and Identifier
#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:520
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:521
#: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-individual-widget.c:1495
#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
#: ../src/empathy-chatrooms-window.ui.h:1
#: ../src/empathy-new-chatroom-dialog.ui.h:1
@@ -1511,13 +1558,13 @@ msgstr "Konto:"
#. Copy Link Address menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:1026
+#: ../libempathy-gtk/empathy-theme-adium.c:1245
msgid "_Copy Link Address"
msgstr "_Kopier lenkens adresse"
#. Open Link menu item
#: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:1033
+#: ../libempathy-gtk/empathy-theme-adium.c:1252
msgid "_Open Link"
msgstr "_Åpne lenke"
@@ -1542,24 +1589,24 @@ msgid "New Contact"
msgstr "Ny kontakt"
#: ../libempathy-gtk/empathy-contact-dialogs.c:533
-#: ../libempathy-gtk/empathy-individual-dialogs.c:199
+#: ../libempathy-gtk/empathy-individual-dialogs.c:200
#, c-format
msgid "Block %s?"
msgstr "Blokker %s?"
#: ../libempathy-gtk/empathy-contact-dialogs.c:538
-#: ../libempathy-gtk/empathy-individual-dialogs.c:247
+#: ../libempathy-gtk/empathy-individual-dialogs.c:252
#, c-format
msgid "Are you sure you want to block '%s' from contacting you again?"
msgstr "Er du sikker på at du vil blokkere «%s» fra å kontakte deg igjen?"
#: ../libempathy-gtk/empathy-contact-dialogs.c:543
-#: ../libempathy-gtk/empathy-individual-dialogs.c:269
+#: ../libempathy-gtk/empathy-individual-dialogs.c:274
msgid "_Block"
msgstr "_Blokker"
#: ../libempathy-gtk/empathy-contact-dialogs.c:559
-#: ../libempathy-gtk/empathy-individual-dialogs.c:278
+#: ../libempathy-gtk/empathy-individual-dialogs.c:283
msgid "_Report this contact as abusive"
msgid_plural "_Report these contacts as abusive"
msgstr[0] "_Rapporter denne kontakten"
@@ -1585,39 +1632,39 @@ msgstr "Ikke gruppert"
msgid "Favorite People"
msgstr "Favorittpersoner"
-#: ../libempathy-gtk/empathy-contact-list-view.c:1987
-#: ../libempathy-gtk/empathy-individual-view.c:2386
+#: ../libempathy-gtk/empathy-contact-list-view.c:1983
+#: ../libempathy-gtk/empathy-individual-view.c:2367
#, c-format
msgid "Do you really want to remove the group '%s'?"
msgstr "Vil du virkelig fjerne gruppen «%s»?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:1989
-#: ../libempathy-gtk/empathy-individual-view.c:2389
+#: ../libempathy-gtk/empathy-contact-list-view.c:1985
+#: ../libempathy-gtk/empathy-individual-view.c:2370
msgid "Removing group"
msgstr "Fjerner gruppe"
#. Remove
-#: ../libempathy-gtk/empathy-contact-list-view.c:2038
-#: ../libempathy-gtk/empathy-contact-list-view.c:2115
-#: ../libempathy-gtk/empathy-individual-view.c:2444
-#: ../libempathy-gtk/empathy-individual-view.c:2637
+#: ../libempathy-gtk/empathy-contact-list-view.c:2034
+#: ../libempathy-gtk/empathy-contact-list-view.c:2111
+#: ../libempathy-gtk/empathy-individual-view.c:2425
+#: ../libempathy-gtk/empathy-individual-view.c:2628
#: ../src/empathy-accounts-dialog.ui.h:7
msgid "_Remove"
msgstr "Fje_rn"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2068
-#: ../libempathy-gtk/empathy-individual-view.c:2508
+#: ../libempathy-gtk/empathy-contact-list-view.c:2064
+#: ../libempathy-gtk/empathy-individual-view.c:2492
#, c-format
msgid "Do you really want to remove the contact '%s'?"
msgstr "Vil du virkelig fjerne kontakten «%s»?"
-#: ../libempathy-gtk/empathy-contact-list-view.c:2070
-#: ../libempathy-gtk/empathy-individual-view.c:2529
+#: ../libempathy-gtk/empathy-contact-list-view.c:2066
+#: ../libempathy-gtk/empathy-individual-view.c:2513
msgid "Removing contact"
msgstr "Fjerner kontakt"
#: ../libempathy-gtk/empathy-contact-menu.c:219
-#: ../src/empathy-main-window.ui.h:13
+#: ../src/empathy-main-window.ui.h:14
msgid "_Add Contact…"
msgstr "_Legg til kontakt …"
@@ -1626,81 +1673,81 @@ msgid "_Block Contact"
msgstr "_Blokker kontakt"
#: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:517
-#: ../src/empathy-main-window.ui.h:15
+#: ../libempathy-gtk/empathy-individual-menu.c:546
+#: ../src/empathy-main-window.ui.h:16
msgid "_Chat"
msgstr "_Prat"
-#: ../libempathy-gtk/empathy-contact-menu.c:359
-#: ../libempathy-gtk/empathy-individual-menu.c:560
+#: ../libempathy-gtk/empathy-contact-menu.c:358
+#: ../libempathy-gtk/empathy-individual-menu.c:635
msgctxt "menu item"
msgid "_Audio Call"
msgstr "_Lydsamtale"
-#: ../libempathy-gtk/empathy-contact-menu.c:390
-#: ../libempathy-gtk/empathy-individual-menu.c:602
+#: ../libempathy-gtk/empathy-contact-menu.c:389
+#: ../libempathy-gtk/empathy-individual-menu.c:677
msgctxt "menu item"
msgid "_Video Call"
msgstr "_Videosamtale"
-#: ../libempathy-gtk/empathy-contact-menu.c:436
-#: ../libempathy-gtk/empathy-individual-menu.c:645
-#: ../src/empathy-main-window.ui.h:26
+#: ../libempathy-gtk/empathy-contact-menu.c:435
+#: ../libempathy-gtk/empathy-individual-menu.c:720
+#: ../src/empathy-main-window.ui.h:27
msgid "_Previous Conversations"
msgstr "_Tidligere samtaler"
-#: ../libempathy-gtk/empathy-contact-menu.c:458
-#: ../libempathy-gtk/empathy-individual-menu.c:686
+#: ../libempathy-gtk/empathy-contact-menu.c:457
+#: ../libempathy-gtk/empathy-individual-menu.c:761
msgid "Send File"
msgstr "Send fil"
-#: ../libempathy-gtk/empathy-contact-menu.c:481
-#: ../libempathy-gtk/empathy-individual-menu.c:728
+#: ../libempathy-gtk/empathy-contact-menu.c:480
+#: ../libempathy-gtk/empathy-individual-menu.c:803
msgid "Share My Desktop"
msgstr "Del mitt skrivebord"
-#: ../libempathy-gtk/empathy-contact-menu.c:521
-#: ../libempathy-gtk/empathy-contact-widget.c:1761
-#: ../libempathy-gtk/empathy-individual-menu.c:763
-#: ../libempathy-gtk/empathy-individual-widget.c:1370
+#: ../libempathy-gtk/empathy-contact-menu.c:520
+#: ../libempathy-gtk/empathy-contact-widget.c:1890
+#: ../libempathy-gtk/empathy-individual-menu.c:838
+#: ../libempathy-gtk/empathy-individual-widget.c:1386
msgid "Favorite"
msgstr "Favoritt"
-#: ../libempathy-gtk/empathy-contact-menu.c:550
-#: ../libempathy-gtk/empathy-individual-menu.c:791
+#: ../libempathy-gtk/empathy-contact-menu.c:549
+#: ../libempathy-gtk/empathy-individual-menu.c:866
msgid "Infor_mation"
msgstr "Infor_masjon"
-#: ../libempathy-gtk/empathy-contact-menu.c:596
+#: ../libempathy-gtk/empathy-contact-menu.c:595
msgctxt "Edit contact (contextual menu)"
msgid "_Edit"
msgstr "R_ediger"
-#: ../libempathy-gtk/empathy-contact-menu.c:650
-#: ../libempathy-gtk/empathy-individual-menu.c:972
-#: ../src/empathy-chat-window.c:935
+#: ../libempathy-gtk/empathy-contact-menu.c:649
+#: ../libempathy-gtk/empathy-individual-menu.c:1053
+#: ../src/empathy-chat-window.c:1010
msgid "Inviting you to this room"
msgstr "Inviterer deg til dette rommet"
-#: ../libempathy-gtk/empathy-contact-menu.c:681
-#: ../libempathy-gtk/empathy-individual-menu.c:1019
+#: ../libempathy-gtk/empathy-contact-menu.c:680
+#: ../libempathy-gtk/empathy-individual-menu.c:1099
msgid "_Invite to Chat Room"
msgstr "_Inviter til praterom"
#. Title
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:513
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:514
msgid "Search contacts"
msgstr "Søk i kontakter"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:543
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:544
msgid "Search: "
msgstr "Søk: "
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:601
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:602
msgid "_Add Contact"
msgstr "_Legg til kontakt"
-#: ../libempathy-gtk/empathy-contact-search-dialog.c:619
+#: ../libempathy-gtk/empathy-contact-search-dialog.c:620
msgid "No contacts found"
msgstr "Ingen kontakter funnet"
@@ -1708,178 +1755,201 @@ msgstr "Ingen kontakter funnet"
msgid "Select a contact"
msgstr "Velg en kontakt"
-#: ../libempathy-gtk/empathy-contact-widget.c:295
+#: ../libempathy-gtk/empathy-contact-widget.c:336
#: ../libempathy-gtk/empathy-individual-widget.c:153
msgid "Full name:"
msgstr "Fullt navn:"
-#: ../libempathy-gtk/empathy-contact-widget.c:296
+#: ../libempathy-gtk/empathy-contact-widget.c:337
#: ../libempathy-gtk/empathy-individual-widget.c:154
msgid "Phone number:"
msgstr "Telefonnummer:"
-#: ../libempathy-gtk/empathy-contact-widget.c:297
+#: ../libempathy-gtk/empathy-contact-widget.c:338
#: ../libempathy-gtk/empathy-individual-widget.c:155
msgid "E-mail address:"
msgstr "E-postadresse:"
-#: ../libempathy-gtk/empathy-contact-widget.c:298
+#: ../libempathy-gtk/empathy-contact-widget.c:339
#: ../libempathy-gtk/empathy-individual-widget.c:156
msgid "Website:"
msgstr "Nettsted:"
-#: ../libempathy-gtk/empathy-contact-widget.c:299
+#: ../libempathy-gtk/empathy-contact-widget.c:340
#: ../libempathy-gtk/empathy-individual-widget.c:157
msgid "Birthday:"
msgstr "Fødselsdag:"
-#: ../libempathy-gtk/empathy-contact-widget.c:762
-#: ../libempathy-gtk/empathy-individual-widget.c:488
+#. Note to translators: this is the caption for a string of the form "5
+#. * minutes ago", and refers to the time since the contact last interacted
+#. * with their IM client.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:346
+msgid "Last seen:"
+msgstr "Sist sett:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:348
+msgid "Connected from:"
+msgstr "Tilkoblet fra:"
+
+#. FIXME: once Idle implements SimplePresence using this information, we can
+#. * and should bin this.
+#.
+#: ../libempathy-gtk/empathy-contact-widget.c:353
+msgid "Away message:"
+msgstr "Bortemelding:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:606
+msgid "Channels:"
+msgstr "Kanaler:"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:901
+#: ../libempathy-gtk/empathy-individual-widget.c:495
msgid "Country ISO Code:"
msgstr "ISO-kode for land:"
-#: ../libempathy-gtk/empathy-contact-widget.c:764
-#: ../libempathy-gtk/empathy-individual-widget.c:490
+#: ../libempathy-gtk/empathy-contact-widget.c:903
+#: ../libempathy-gtk/empathy-individual-widget.c:497
msgid "Country:"
msgstr "Land:"
-#: ../libempathy-gtk/empathy-contact-widget.c:766
-#: ../libempathy-gtk/empathy-individual-widget.c:492
+#: ../libempathy-gtk/empathy-contact-widget.c:905
+#: ../libempathy-gtk/empathy-individual-widget.c:499
msgid "State:"
msgstr "Tilstand:"
-#: ../libempathy-gtk/empathy-contact-widget.c:768
-#: ../libempathy-gtk/empathy-individual-widget.c:494
+#: ../libempathy-gtk/empathy-contact-widget.c:907
+#: ../libempathy-gtk/empathy-individual-widget.c:501
msgid "City:"
msgstr "By:"
-#: ../libempathy-gtk/empathy-contact-widget.c:770
-#: ../libempathy-gtk/empathy-individual-widget.c:496
+#: ../libempathy-gtk/empathy-contact-widget.c:909
+#: ../libempathy-gtk/empathy-individual-widget.c:503
msgid "Area:"
msgstr "Område:"
-#: ../libempathy-gtk/empathy-contact-widget.c:772
-#: ../libempathy-gtk/empathy-individual-widget.c:498
+#: ../libempathy-gtk/empathy-contact-widget.c:911
+#: ../libempathy-gtk/empathy-individual-widget.c:505
msgid "Postal Code:"
msgstr "Postkode:"
-#: ../libempathy-gtk/empathy-contact-widget.c:774
-#: ../libempathy-gtk/empathy-individual-widget.c:500
+#: ../libempathy-gtk/empathy-contact-widget.c:913
+#: ../libempathy-gtk/empathy-individual-widget.c:507
msgid "Street:"
msgstr "Gate:"
-#: ../libempathy-gtk/empathy-contact-widget.c:776
-#: ../libempathy-gtk/empathy-individual-widget.c:502
+#: ../libempathy-gtk/empathy-contact-widget.c:915
+#: ../libempathy-gtk/empathy-individual-widget.c:509
msgid "Building:"
msgstr "Bygning:"
-#: ../libempathy-gtk/empathy-contact-widget.c:778
-#: ../libempathy-gtk/empathy-individual-widget.c:504
+#: ../libempathy-gtk/empathy-contact-widget.c:917
+#: ../libempathy-gtk/empathy-individual-widget.c:511
msgid "Floor:"
msgstr "Etasje:"
-#: ../libempathy-gtk/empathy-contact-widget.c:780
-#: ../libempathy-gtk/empathy-individual-widget.c:506
+#: ../libempathy-gtk/empathy-contact-widget.c:919
+#: ../libempathy-gtk/empathy-individual-widget.c:513
msgid "Room:"
msgstr "Rom:"
-#: ../libempathy-gtk/empathy-contact-widget.c:782
-#: ../libempathy-gtk/empathy-individual-widget.c:508
+#: ../libempathy-gtk/empathy-contact-widget.c:921
+#: ../libempathy-gtk/empathy-individual-widget.c:515
msgid "Text:"
msgstr "Tekst:"
-#: ../libempathy-gtk/empathy-contact-widget.c:784
-#: ../libempathy-gtk/empathy-individual-widget.c:510
+#: ../libempathy-gtk/empathy-contact-widget.c:923
+#: ../libempathy-gtk/empathy-individual-widget.c:517
msgid "Description:"
msgstr "Beskrivelse:"
-#: ../libempathy-gtk/empathy-contact-widget.c:786
-#: ../libempathy-gtk/empathy-individual-widget.c:512
+#: ../libempathy-gtk/empathy-contact-widget.c:925
+#: ../libempathy-gtk/empathy-individual-widget.c:519
msgid "URI:"
msgstr "URI:"
-#: ../libempathy-gtk/empathy-contact-widget.c:788
-#: ../libempathy-gtk/empathy-individual-widget.c:514
+#: ../libempathy-gtk/empathy-contact-widget.c:927
+#: ../libempathy-gtk/empathy-individual-widget.c:521
msgid "Accuracy Level:"
msgstr "Nøyaktighetsnivå:"
-#: ../libempathy-gtk/empathy-contact-widget.c:790
-#: ../libempathy-gtk/empathy-individual-widget.c:516
+#: ../libempathy-gtk/empathy-contact-widget.c:929
+#: ../libempathy-gtk/empathy-individual-widget.c:523
msgid "Error:"
msgstr "Feil:"
-#: ../libempathy-gtk/empathy-contact-widget.c:792
-#: ../libempathy-gtk/empathy-individual-widget.c:518
+#: ../libempathy-gtk/empathy-contact-widget.c:931
+#: ../libempathy-gtk/empathy-individual-widget.c:525
msgid "Vertical Error (meters):"
msgstr "Vertikal feil (meter):"
-#: ../libempathy-gtk/empathy-contact-widget.c:794
-#: ../libempathy-gtk/empathy-individual-widget.c:520
+#: ../libempathy-gtk/empathy-contact-widget.c:933
+#: ../libempathy-gtk/empathy-individual-widget.c:527
msgid "Horizontal Error (meters):"
msgstr "Horisontal feil (meter):"
-#: ../libempathy-gtk/empathy-contact-widget.c:796
-#: ../libempathy-gtk/empathy-individual-widget.c:522
+#: ../libempathy-gtk/empathy-contact-widget.c:935
+#: ../libempathy-gtk/empathy-individual-widget.c:529
msgid "Speed:"
msgstr "Hastighet:"
-#: ../libempathy-gtk/empathy-contact-widget.c:798
-#: ../libempathy-gtk/empathy-individual-widget.c:524
+#: ../libempathy-gtk/empathy-contact-widget.c:937
+#: ../libempathy-gtk/empathy-individual-widget.c:531
msgid "Bearing:"
msgstr "Retning:"
-#: ../libempathy-gtk/empathy-contact-widget.c:800
-#: ../libempathy-gtk/empathy-individual-widget.c:526
+#: ../libempathy-gtk/empathy-contact-widget.c:939
+#: ../libempathy-gtk/empathy-individual-widget.c:533
msgid "Climb Speed:"
msgstr "Klatrehastighet:"
-#: ../libempathy-gtk/empathy-contact-widget.c:802
-#: ../libempathy-gtk/empathy-individual-widget.c:528
+#: ../libempathy-gtk/empathy-contact-widget.c:941
+#: ../libempathy-gtk/empathy-individual-widget.c:535
msgid "Last Updated on:"
msgstr "Sist oppdatert:"
-#: ../libempathy-gtk/empathy-contact-widget.c:804
-#: ../libempathy-gtk/empathy-individual-widget.c:530
+#: ../libempathy-gtk/empathy-contact-widget.c:943
+#: ../libempathy-gtk/empathy-individual-widget.c:537
msgid "Longitude:"
msgstr "Lengdegrad:"
-#: ../libempathy-gtk/empathy-contact-widget.c:806
-#: ../libempathy-gtk/empathy-individual-widget.c:532
+#: ../libempathy-gtk/empathy-contact-widget.c:945
+#: ../libempathy-gtk/empathy-individual-widget.c:539
msgid "Latitude:"
msgstr "Breddegrad:"
-#: ../libempathy-gtk/empathy-contact-widget.c:808
-#: ../libempathy-gtk/empathy-individual-widget.c:534
+#: ../libempathy-gtk/empathy-contact-widget.c:947
+#: ../libempathy-gtk/empathy-individual-widget.c:541
msgid "Altitude:"
msgstr "Høyde:"
-#: ../libempathy-gtk/empathy-contact-widget.c:871
-#: ../libempathy-gtk/empathy-contact-widget.c:886
-#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:631
+#: ../libempathy-gtk/empathy-contact-widget.c:1000
+#: ../libempathy-gtk/empathy-contact-widget.c:1015
+#: ../libempathy-gtk/empathy-individual-widget.c:629
+#: ../libempathy-gtk/empathy-individual-widget.c:644
#: ../src/empathy-preferences.ui.h:12
msgid "Location"
msgstr "Sted"
#. translators: format is "Location, $date"
-#: ../libempathy-gtk/empathy-contact-widget.c:888
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-contact-widget.c:1017
+#: ../libempathy-gtk/empathy-individual-widget.c:646
#, c-format
msgid "%s, %s"
msgstr "%s, %s"
-#: ../libempathy-gtk/empathy-contact-widget.c:940
-#: ../libempathy-gtk/empathy-individual-widget.c:682
+#: ../libempathy-gtk/empathy-contact-widget.c:1069
+#: ../libempathy-gtk/empathy-individual-widget.c:695
msgid "%B %e, %Y at %R UTC"
msgstr "%B %e, %Y, %R UTC"
-#: ../libempathy-gtk/empathy-contact-widget.c:1022
-#: ../libempathy-gtk/empathy-individual-widget.c:917
+#: ../libempathy-gtk/empathy-contact-widget.c:1151
+#: ../libempathy-gtk/empathy-individual-widget.c:931
msgid "Save Avatar"
msgstr "Lagre personbilder"
-#: ../libempathy-gtk/empathy-contact-widget.c:1078
-#: ../libempathy-gtk/empathy-individual-widget.c:975
+#: ../libempathy-gtk/empathy-contact-widget.c:1207
+#: ../libempathy-gtk/empathy-individual-widget.c:989
msgid "Unable to save avatar"
msgstr "Kan ikke lagre personbilde"
@@ -1889,7 +1959,7 @@ msgstr "<b>Plassering</b> (dato)\t"
#. Alias
#: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1305
+#: ../libempathy-gtk/empathy-individual-widget.c:1321
msgid "Alias:"
msgstr "Alias:"
@@ -1909,7 +1979,7 @@ msgstr "Kontaktdetaljer"
#. Identifier to connect to Instant Messaging network
#. Translators: Identifier to connect to Instant Messaging network
#: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1509
+#: ../libempathy-gtk/empathy-individual-widget.c:1525
msgid "Identifier:"
msgstr "Identifikator:"
@@ -1926,11 +1996,11 @@ msgstr "OS:"
msgid "Version:"
msgstr "Versjon:"
-#: ../libempathy-gtk/empathy-groups-widget.c:332
+#: ../libempathy-gtk/empathy-groups-widget.c:333
msgid "Groups"
msgstr "Grupper"
-#: ../libempathy-gtk/empathy-groups-widget.c:344
+#: ../libempathy-gtk/empathy-groups-widget.c:345
msgid ""
"Select the groups you want this contact to appear in. Note that you can "
"select more than one group or no groups."
@@ -1938,74 +2008,80 @@ msgstr ""
"Velg gruppene du ønsker at denne kontakten skal vises i. Du kan velge flere "
"eller ingen."
-#: ../libempathy-gtk/empathy-groups-widget.c:363
+#: ../libempathy-gtk/empathy-groups-widget.c:364
msgid "_Add Group"
msgstr "_Legg til gruppe"
-#: ../libempathy-gtk/empathy-groups-widget.c:398
+#: ../libempathy-gtk/empathy-groups-widget.c:399
msgctxt "verb in a column header displaying group names"
msgid "Select"
msgstr "Velg"
-#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1439
+#: ../libempathy-gtk/empathy-groups-widget.c:409
+#: ../src/empathy-main-window.c:1753
msgid "Group"
msgstr "Gruppe"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:252
+#: ../libempathy-gtk/empathy-individual-dialogs.c:257
msgid "The following identity will be blocked:"
msgid_plural "The following identities will be blocked:"
msgstr[0] "Følgende identitet vil bli blokkert:"
msgstr[1] "Følgende identiteter vil bli blokkert:"
-#: ../libempathy-gtk/empathy-individual-dialogs.c:259
+#: ../libempathy-gtk/empathy-individual-dialogs.c:264
msgid "The following identity can not be blocked:"
msgid_plural "The following identities can not be blocked:"
msgstr[0] "Følgende identitet kan ikke blokkeres:"
msgstr[1] "Følgende identiteter kan ikke blokkeres:"
#. Translators: the heading at the top of the Information dialogue
-#: ../libempathy-gtk/empathy-individual-information-dialog.c:281
+#: ../libempathy-gtk/empathy-individual-information-dialog.c:288
msgid "Linked Contacts"
msgstr "Koblede kontakter"
-#: ../libempathy-gtk/empathy-individual-linker.c:354
+#: ../libempathy-gtk/empathy-individual-linker.c:370
msgid "Select contacts to link"
msgstr "Velg kontakter som skal kobles"
-#: ../libempathy-gtk/empathy-individual-linker.c:428
+#: ../libempathy-gtk/empathy-individual-linker.c:444
msgid "New contact preview"
msgstr "Forhåndsvisning av ny kontakt"
-#: ../libempathy-gtk/empathy-individual-linker.c:472
+#: ../libempathy-gtk/empathy-individual-linker.c:488
msgid "Contacts selected in the list on the left will be linked together."
msgstr "Kontakter som velges i listen til venstre vil bli koblet sammen."
#. Translators: this is used in the context menu for a contact. The first
#. * parameter is a contact ID (e.g. foo@jabber.org) and the second is one
#. * of the user's account IDs (e.g. me@hotmail.com).
-#: ../libempathy-gtk/empathy-individual-menu.c:131
+#: ../libempathy-gtk/empathy-individual-menu.c:136
#, c-format
msgid "%s (%s)"
msgstr "%s (%s)"
-#: ../libempathy-gtk/empathy-individual-menu.c:839
+#. add an SMS button
+#: ../libempathy-gtk/empathy-individual-menu.c:592
+#: ../libempathy-gtk/empathy-new-message-dialog.c:248
+msgid "_SMS"
+msgstr "_SMS"
+
+#: ../libempathy-gtk/empathy-individual-menu.c:914
msgctxt "Edit individual (contextual menu)"
msgid "_Edit"
msgstr "R_ediger"
#. Translators: this is a verb meaning "to connect two contacts together
#. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:865
+#: ../libempathy-gtk/empathy-individual-menu.c:940
msgctxt "Link individual (contextual menu)"
msgid "_Link Contacts…"
msgstr "Koble kontakter …"
-#: ../libempathy-gtk/empathy-individual-view.c:2351
+#: ../libempathy-gtk/empathy-individual-view.c:2332
msgid "Delete and _Block"
msgstr "Slett og _blokker"
-#: ../libempathy-gtk/empathy-individual-view.c:2517
+#: ../libempathy-gtk/empathy-individual-view.c:2501
#, c-format
msgid ""
"Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2014,7 +2090,7 @@ msgstr ""
"Vil du virkelig fjerne lenket kontakt «%s»? Merk at dette vil fjerne alle "
"kontaktene den lenkede kontakten består av."
-#: ../libempathy-gtk/empathy-individual-widget.c:1650
+#: ../libempathy-gtk/empathy-individual-widget.c:1672
#, c-format
msgid "Linked contact containing %u contact"
msgid_plural "Linked contacts containing %u contacts"
@@ -2135,27 +2211,27 @@ msgid "Contact ID:"
msgstr "KontaktID:"
#. add chat button
-#: ../libempathy-gtk/empathy-new-message-dialog.c:171
+#: ../libempathy-gtk/empathy-new-message-dialog.c:258
msgid "C_hat"
msgstr "_Prat"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-message-dialog.c:181
+#: ../libempathy-gtk/empathy-new-message-dialog.c:277
msgid "New Conversation"
msgstr "Ny samtale"
#. add video toggle
-#: ../libempathy-gtk/empathy-new-call-dialog.c:253
+#: ../libempathy-gtk/empathy-new-call-dialog.c:254
msgid "Send _Video"
msgstr "Send _video"
#. add chat button
-#: ../libempathy-gtk/empathy-new-call-dialog.c:261
+#: ../libempathy-gtk/empathy-new-call-dialog.c:262
msgid "C_all"
msgstr "S_amtale"
#. Tweak the dialog
-#: ../libempathy-gtk/empathy-new-call-dialog.c:271
+#: ../libempathy-gtk/empathy-new-call-dialog.c:272
msgid "New Call"
msgstr "Ny samtale"
@@ -2282,6 +2358,10 @@ msgstr "Lagre _nye statusmeldinger"
msgid "Saved Status Messages"
msgstr "Lagrede statusmeldinger"
+#: ../libempathy-gtk/empathy-theme-adium.c:1717
+msgid "Normal"
+msgstr "Normal"
+
#: ../libempathy-gtk/empathy-theme-manager.c:68
msgid "Classic"
msgstr "Klassisk"
@@ -2371,19 +2451,19 @@ msgstr "Husk dette valget for fremtidige tilkoblinger"
msgid "Certificate Details"
msgstr "Sertifikatdetaljer"
-#: ../libempathy-gtk/empathy-ui-utils.c:1705
+#: ../libempathy-gtk/empathy-ui-utils.c:1653
msgid "Unable to open URI"
msgstr "Kan ikke åpne URI"
-#: ../libempathy-gtk/empathy-ui-utils.c:1800
+#: ../libempathy-gtk/empathy-ui-utils.c:1748
msgid "Select a file"
msgstr "Velg en fil"
-#: ../libempathy-gtk/empathy-ui-utils.c:1872
+#: ../libempathy-gtk/empathy-ui-utils.c:1820
msgid "Insufficient free space to save file"
msgstr "Ikke nok ledig plass til å lagre filen"
-#: ../libempathy-gtk/empathy-ui-utils.c:1880
+#: ../libempathy-gtk/empathy-ui-utils.c:1828
#, c-format
msgid ""
"%s of free space are required to save this file, but only %s is available. "
@@ -2392,7 +2472,7 @@ msgstr ""
"%s ledig plass kreves for å lagre denne filen, men kun %s er tilgjengelig. "
"Vennligst velg en annen lokasjon."
-#: ../libempathy-gtk/empathy-ui-utils.c:1924
+#: ../libempathy-gtk/empathy-ui-utils.c:1872
#, c-format
msgid "Incoming file from %s"
msgstr "Innkommende fil fra %s"
@@ -2580,23 +2660,23 @@ msgstr "Ingen feilmelding"
msgid "Instant Message (Empathy)"
msgstr "Lynmelding (Empathy)"
-#: ../src/empathy.c:308
+#: ../src/empathy.c:307
msgid "Don't connect on startup"
msgstr "Ikke koble til ved oppstart"
-#: ../src/empathy.c:312
+#: ../src/empathy.c:311
msgid "Don't display the contact list or any other dialogs on startup"
msgstr "Ikke vis kontaktlisten eller andre dialoger ved oppstart"
-#: ../src/empathy.c:320
+#: ../src/empathy.c:319
msgid "- Empathy IM Client"
msgstr "- Empathy lynmeldingsprogram"
-#: ../src/empathy.c:499
+#: ../src/empathy.c:498
msgid "Error contacting the Account Manager"
msgstr "Feil ved forsøk på å kontakte kontohåndtering"
-#: ../src/empathy.c:501
+#: ../src/empathy.c:500
#, c-format
msgid ""
"There was an error while trying to connect to the Telepathy Account Manager. "
@@ -2749,8 +2829,8 @@ msgid "Select the accounts you want to import:"
msgstr "Velg kontoer du vil importere:"
#: ../src/empathy-account-assistant.c:813
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "Yes"
msgstr "Ja"
@@ -2868,7 +2948,7 @@ msgstr "Vil du fjerne %s fra din datamaskin?"
msgid "This will not remove your account on the server."
msgstr "Dette vil ikke fjerne din konto på tjeneren."
-#: ../src/empathy-accounts-dialog.c:1434
+#: ../src/empathy-accounts-dialog.c:1432
msgid ""
"You are about to select another account, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2877,15 +2957,15 @@ msgstr ""
"dine endringer. Er du sikker på at du vil fortsette?"
#. Menu items: to enabled/disable the account
-#: ../src/empathy-accounts-dialog.c:1652
+#: ../src/empathy-accounts-dialog.c:1643
msgid "_Enable"
msgstr "Slå _på"
-#: ../src/empathy-accounts-dialog.c:1653
+#: ../src/empathy-accounts-dialog.c:1644
msgid "_Disable"
msgstr "Slå _av"
-#: ../src/empathy-accounts-dialog.c:2174
+#: ../src/empathy-accounts-dialog.c:2154
msgid ""
"You are about to close the window, which will discard\n"
"your changes. Are you sure you want to proceed?"
@@ -2921,11 +3001,11 @@ msgstr "_Legg til …"
msgid "_Import…"
msgstr "_Importer …"
-#: ../src/empathy-auth-client.c:250
+#: ../src/empathy-auth-client.c:249
msgid " - Empathy authentication client"
msgstr "- Empathy autentiseringsklient"
-#: ../src/empathy-auth-client.c:266
+#: ../src/empathy-auth-client.c:265
msgid "Empathy authentication client"
msgstr "Empathy autentiseringsklient"
@@ -3208,39 +3288,50 @@ msgstr "Forhåndsvis video"
msgid "_Call"
msgstr "_Ring"
-#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:29
+#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:30
msgid "_View"
msgstr "_Vis"
-#: ../src/empathy-chat-window.c:474 ../src/empathy-chat-window.c:494
+#: ../src/empathy-chat-window.c:480 ../src/empathy-chat-window.c:500
#, c-format
msgid "%s (%d unread)"
msgid_plural "%s (%d unread)"
msgstr[0] "%s (%d ulest)"
msgstr[1] "%s (%d uleste)"
-#: ../src/empathy-chat-window.c:486
+#: ../src/empathy-chat-window.c:492
#, c-format
msgid "%s (and %u other)"
msgid_plural "%s (and %u others)"
msgstr[0] "%s (og %u annen)"
msgstr[1] "%s (og %u andre)"
-#: ../src/empathy-chat-window.c:502
+#: ../src/empathy-chat-window.c:508
#, c-format
msgid "%s (%d unread from others)"
msgid_plural "%s (%d unread from others)"
msgstr[0] "%s (%d ulest fra andre)"
msgstr[1] "%s (%d uleste fra andre)"
-#: ../src/empathy-chat-window.c:511
+#: ../src/empathy-chat-window.c:517
#, c-format
msgid "%s (%d unread from all)"
msgid_plural "%s (%d unread from all)"
msgstr[0] "%s (%d ulest fra alle)"
msgstr[1] "%s (%d uleste fra alle)"
-#: ../src/empathy-chat-window.c:721
+#: ../src/empathy-chat-window.c:732
+msgid "SMS:"
+msgstr "SMS:"
+
+#: ../src/empathy-chat-window.c:742
+#, c-format
+msgid "Sending %d message"
+msgid_plural "Sending %d messages"
+msgstr[0] "Sender %d melding"
+msgstr[1] "Sender %d meldinger"
+
+#: ../src/empathy-chat-window.c:764
msgid "Typing a message."
msgstr "Skriver en melding"
@@ -3276,7 +3367,7 @@ msgstr "Flytt fane til høy_re"
msgid "Notify for All Messages"
msgstr "Varsle for alle meldinger"
-#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:17
+#: ../src/empathy-chat-window.ui.h:9 ../src/empathy-main-window.ui.h:18
msgid "_Contents"
msgstr "_Innhold"
@@ -3288,7 +3379,7 @@ msgstr "_Samtale"
msgid "_Detach Tab"
msgstr "Riv _løs fane"
-#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:19
+#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:20
msgid "_Edit"
msgstr "_Rediger"
@@ -3296,7 +3387,7 @@ msgstr "_Rediger"
msgid "_Favorite Chat Room"
msgstr "_Favoritt-praterom"
-#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:21
+#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:22
msgid "_Help"
msgstr "_Hjelp"
@@ -3336,34 +3427,34 @@ msgstr "Koble til automatisk"
msgid "Manage Favorite Rooms"
msgstr "Håndter favorittrom"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:510
msgid "Incoming video call"
msgstr "Innkommende videosamtale"
-#: ../src/empathy-event-manager.c:507
+#: ../src/empathy-event-manager.c:510
msgid "Incoming call"
msgstr "Innkommende samtale"
-#: ../src/empathy-event-manager.c:511
+#: ../src/empathy-event-manager.c:514
#, c-format
msgid "%s is video calling you. Do you want to answer?"
msgstr "%s ringer deg med video. Vil du svare?"
-#: ../src/empathy-event-manager.c:512
+#: ../src/empathy-event-manager.c:515
#, c-format
msgid "%s is calling you. Do you want to answer?"
msgstr "%s ringer deg. Vil du svare?"
-#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:667
+#: ../src/empathy-event-manager.c:518 ../src/empathy-event-manager.c:667
#, c-format
msgid "Incoming call from %s"
msgstr "Innkommende samtale fra %s"
-#: ../src/empathy-event-manager.c:540
+#: ../src/empathy-event-manager.c:543
msgid "_Reject"
msgstr "Av_vis"
-#: ../src/empathy-event-manager.c:546
+#: ../src/empathy-event-manager.c:549
msgid "_Answer"
msgstr "Sv_ar"
@@ -3372,54 +3463,54 @@ msgstr "Sv_ar"
msgid "Incoming video call from %s"
msgstr "Innkommende videosamtale fra %s"
-#: ../src/empathy-event-manager.c:744
+#: ../src/empathy-event-manager.c:740
msgid "Room invitation"
msgstr "Invitasjon til rom"
-#: ../src/empathy-event-manager.c:746
+#: ../src/empathy-event-manager.c:742
#, c-format
msgid "Invitation to join %s"
msgstr "Invitasjon til å bli med i %s"
-#: ../src/empathy-event-manager.c:753
+#: ../src/empathy-event-manager.c:749
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s inviterer deg til å bli med i %s"
-#: ../src/empathy-event-manager.c:761
+#: ../src/empathy-event-manager.c:757
msgid "_Decline"
msgstr "_Avslå"
-#: ../src/empathy-event-manager.c:766
+#: ../src/empathy-event-manager.c:762
#: ../src/empathy-new-chatroom-dialog.ui.h:7
msgid "_Join"
msgstr "_Bli med"
-#: ../src/empathy-event-manager.c:793
+#: ../src/empathy-event-manager.c:789
#, c-format
msgid "%s invited you to join %s"
msgstr "%s inviterte deg til å bli med i %s"
-#: ../src/empathy-event-manager.c:799
+#: ../src/empathy-event-manager.c:795
#, c-format
msgid "You have been invited to join %s"
msgstr "Du har blitt invitert til å bli med i %s"
-#: ../src/empathy-event-manager.c:850
+#: ../src/empathy-event-manager.c:846
#, c-format
msgid "Incoming file transfer from %s"
msgstr "Innkommende filoverføring fra %s"
-#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:373
+#: ../src/empathy-event-manager.c:1024 ../src/empathy-main-window.c:377
msgid "Password required"
msgstr "Passord kreves"
-#: ../src/empathy-event-manager.c:1076
+#: ../src/empathy-event-manager.c:1080
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s ønsker rettigheter til å se når du er tilkoblet"
-#: ../src/empathy-event-manager.c:1080
+#: ../src/empathy-event-manager.c:1084
#, c-format
msgid ""
"\n"
@@ -3505,7 +3596,7 @@ msgstr "«%s» sendt til %s"
msgid "File transfer completed"
msgstr "Filoverføring fullført"
-#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:783
+#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:780
msgid "Waiting for the other participant's response"
msgstr "Venter på svar fra motparten"
@@ -3519,15 +3610,15 @@ msgstr "Sjekker integriteten for «%s»"
msgid "Hashing \"%s\""
msgstr "Hasher «%s»"
-#: ../src/empathy-ft-manager.c:1029
+#: ../src/empathy-ft-manager.c:1026
msgid "%"
msgstr "%"
-#: ../src/empathy-ft-manager.c:1041
+#: ../src/empathy-ft-manager.c:1038
msgid "File"
msgstr "Fil"
-#: ../src/empathy-ft-manager.c:1063
+#: ../src/empathy-ft-manager.c:1060
msgid "Remaining"
msgstr "Gjenstår"
@@ -3562,39 +3653,55 @@ msgstr "Protokoll"
msgid "Source"
msgstr "Kilde"
-#: ../src/empathy-main-window.c:390
+#: ../src/empathy-main-window.c:394
msgid "Provide Password"
msgstr "Oppgi passord"
-#: ../src/empathy-main-window.c:396
+#: ../src/empathy-main-window.c:400
msgid "Disconnect"
msgstr "Koble fra"
-#: ../src/empathy-main-window.c:536
+#: ../src/empathy-main-window.c:540
msgid "No match found"
msgstr "Ingen treff funnet"
-#: ../src/empathy-main-window.c:691
+#: ../src/empathy-main-window.c:695
msgid "Reconnect"
msgstr "Koble til på nytt"
-#: ../src/empathy-main-window.c:697
+#: ../src/empathy-main-window.c:701
msgid "Edit Account"
msgstr "Rediger konto"
-#: ../src/empathy-main-window.c:703
+#: ../src/empathy-main-window.c:707
msgid "Close"
msgstr "Lukk"
-#: ../src/empathy-main-window.c:1421
+#. Translators: this string will be something like:
+#. * Top up My Account ($1.23)..."
+#: ../src/empathy-main-window.c:846
+#, c-format
+msgid "Top up %s (%s)..."
+msgstr "Fyll opp %s (%s) …"
+
+#: ../src/empathy-main-window.c:893
+msgid "Top up account credit"
+msgstr "Fyll opp kreditt for konto"
+
+#. top up button
+#: ../src/empathy-main-window.c:968
+msgid "Top Up..."
+msgstr "Fyll opp …"
+
+#: ../src/empathy-main-window.c:1735
msgid "Contact"
msgstr "Kontakt"
-#: ../src/empathy-main-window.c:1768
+#: ../src/empathy-main-window.c:2087
msgid "Contact List"
msgstr "Kontaktliste"
-#: ../src/empathy-main-window.c:1884
+#: ../src/empathy-main-window.c:2205
msgid "Show and edit accounts"
msgstr "Vis og rediger kontoer"
@@ -3603,86 +3710,90 @@ msgid "Contacts on a _Map"
msgstr "Kontakter på et _kart"
#: ../src/empathy-main-window.ui.h:2
+msgid "Credit Balance"
+msgstr "Kredittsaldo"
+
+#: ../src/empathy-main-window.ui.h:3
msgid "Find in Contact _List"
msgstr "Finn i kontakt_liste"
-#: ../src/empathy-main-window.ui.h:3
+#: ../src/empathy-main-window.ui.h:4
msgid "Join _Favorites"
msgstr "Bli med i _favoritter"
-#: ../src/empathy-main-window.ui.h:4
+#: ../src/empathy-main-window.ui.h:5
msgid "Manage Favorites"
msgstr "Håndter favoritter"
-#: ../src/empathy-main-window.ui.h:5
+#: ../src/empathy-main-window.ui.h:6
msgid "N_ormal Size"
msgstr "N_ormal størrelse"
-#: ../src/empathy-main-window.ui.h:6 ../src/empathy-status-icon.ui.h:1
+#: ../src/empathy-main-window.ui.h:7 ../src/empathy-status-icon.ui.h:1
msgid "New _Call…"
msgstr "Ny _samtale …"
-#: ../src/empathy-main-window.ui.h:7
+#: ../src/empathy-main-window.ui.h:8
msgid "Normal Size With _Avatars"
msgstr "Normal størrelse med _avatarer"
-#: ../src/empathy-main-window.ui.h:8
+#: ../src/empathy-main-window.ui.h:9
msgid "P_references"
msgstr "B_rukervalg"
-#: ../src/empathy-main-window.ui.h:9
+#: ../src/empathy-main-window.ui.h:10
msgid "Show P_rotocols"
msgstr "Vis p_rotokoller"
-#: ../src/empathy-main-window.ui.h:10
+#: ../src/empathy-main-window.ui.h:11
msgid "Sort by _Name"
msgstr "Sorter på _navn"
-#: ../src/empathy-main-window.ui.h:11
+#: ../src/empathy-main-window.ui.h:12
msgid "Sort by _Status"
msgstr "Sorter på _status"
-#: ../src/empathy-main-window.ui.h:12
+#: ../src/empathy-main-window.ui.h:13
msgid "_Accounts"
msgstr "_Kontoer"
-#: ../src/empathy-main-window.ui.h:14
+#: ../src/empathy-main-window.ui.h:15
msgid "_Blocked Contacts"
msgstr "_Blokkerte kontakter"
-#: ../src/empathy-main-window.ui.h:16
+#: ../src/empathy-main-window.ui.h:17
msgid "_Compact Size"
msgstr "_Kompakt størrelse"
-#: ../src/empathy-main-window.ui.h:18
+#: ../src/empathy-main-window.ui.h:19
msgid "_Debug"
msgstr "_Feilsøk"
-#: ../src/empathy-main-window.ui.h:20
+#: ../src/empathy-main-window.ui.h:21
msgid "_File Transfers"
msgstr "_Filoverføringer"
-#: ../src/empathy-main-window.ui.h:22
+#: ../src/empathy-main-window.ui.h:23
msgid "_Join…"
msgstr "_Bli med …"
-#: ../src/empathy-main-window.ui.h:23 ../src/empathy-status-icon.ui.h:3
+#: ../src/empathy-main-window.ui.h:24 ../src/empathy-status-icon.ui.h:3
msgid "_New Conversation…"
msgstr "_Ny samtale …"
-#: ../src/empathy-main-window.ui.h:24
+#: ../src/empathy-main-window.ui.h:25
msgid "_Offline Contacts"
msgstr "Frak_oblede kontakter"
-#: ../src/empathy-main-window.ui.h:25
+#: ../src/empathy-main-window.ui.h:26
msgid "_Personal Information"
msgstr "Personlig _informasjon"
-#: ../src/empathy-main-window.ui.h:27
+#: ../src/empathy-main-window.ui.h:28
msgid "_Room"
msgstr "_Rom"
-#: ../src/empathy-main-window.ui.h:28
+#: ../src/empathy-main-window.ui.h:29
msgid "_Search for Contacts…"
msgstr "_Søk etter kontakter …"
@@ -3696,7 +3807,7 @@ msgstr "Medlemmer"
#. Translators: Room/Join's roomlist tooltip. Parameters are a channel name,
#. yes/no, yes/no and a number.
-#: ../src/empathy-new-chatroom-dialog.c:560
+#: ../src/empathy-new-chatroom-dialog.c:553
#, c-format
msgid ""
"%s\n"
@@ -3709,16 +3820,16 @@ msgstr ""
"Passord kreves: %s\n"
"Medlemmer: %s"
-#: ../src/empathy-new-chatroom-dialog.c:562
-#: ../src/empathy-new-chatroom-dialog.c:563
+#: ../src/empathy-new-chatroom-dialog.c:555
+#: ../src/empathy-new-chatroom-dialog.c:556
msgid "No"
msgstr "Nei"
-#: ../src/empathy-new-chatroom-dialog.c:591
+#: ../src/empathy-new-chatroom-dialog.c:584
msgid "Could not start room listing"
msgstr "Kunne ikke starte romliste"
-#: ../src/empathy-new-chatroom-dialog.c:601
+#: ../src/empathy-new-chatroom-dialog.c:594
msgid "Could not stop room listing"
msgstr "Kune ikke stoppe romliste"
@@ -3781,51 +3892,51 @@ msgstr "Konto koblet til"
msgid "Account disconnected"
msgstr "Konto koblet fra"
-#: ../src/empathy-preferences.c:454
+#: ../src/empathy-preferences.c:450
msgid "Language"
msgstr "Språk"
#. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:704
+#: ../src/empathy-preferences.c:700
msgid "Juliet"
msgstr "Juliet"
#. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:711
+#: ../src/empathy-preferences.c:707
msgid "Romeo"
msgstr "Romeo"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:717
+#: ../src/empathy-preferences.c:713
msgid "O Romeo, Romeo, wherefore art thou Romeo?"
msgstr "O Romeo, Romeo, wherefore art thou Romeo?"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:720
+#: ../src/empathy-preferences.c:716
msgid "Deny thy father and refuse thy name;"
msgstr "Deny thy father and refuse thy name;"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:723
+#: ../src/empathy-preferences.c:719
msgid "Or if thou wilt not, be but sworn my love"
msgstr "Or if thou wilt not, be but sworn my love"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:726
+#: ../src/empathy-preferences.c:722
msgid "And I'll no longer be a Capulet."
msgstr "And I'll no longer be a Capulet."
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:729
+#: ../src/empathy-preferences.c:725
msgid "Shall I hear more, or shall I speak at this?"
msgstr "Shall I hear more, or shall I speak at this?"
#. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:732
+#: ../src/empathy-preferences.c:728
msgid "Juliet has disconnected"
msgstr "Juliet har koblet fra"
-#: ../src/empathy-preferences.c:966
+#: ../src/empathy-preferences.c:962
msgid "Preferences"
msgstr "Brukervalg"
@@ -4045,16 +4156,16 @@ msgid ""
msgstr ""
"Valgt tilkoblingshåndterer støtter ikke utvidelse for ekstern feilsøking."
-#: ../src/empathy-invite-participant-dialog.c:34
-#: ../src/empathy-invite-participant-dialog.c:48
+#: ../src/empathy-invite-participant-dialog.c:429
+#: ../src/empathy-invite-participant-dialog.c:477
msgid "Invite Participant"
msgstr "Inviter deltaker"
-#: ../src/empathy-invite-participant-dialog.c:35
+#: ../src/empathy-invite-participant-dialog.c:430
msgid "Choose a contact to invite into the conversation:"
msgstr "Velg en kontakt å invitere til samtalen:"
-#: ../src/empathy-invite-participant-dialog.c:45
+#: ../src/empathy-invite-participant-dialog.c:473
msgid "Invite"
msgstr "Inviter"
@@ -4116,7 +4227,7 @@ msgstr "Avslå"
msgid "Accept"
msgstr "Godta"
-#: ../src/empathy-notifications-approver.c:223
+#: ../src/empathy-notifications-approver.c:226
msgid "Provide"
msgstr "Oppgi"
diff --git a/src/empathy-invite-participant-dialog.c b/src/empathy-invite-participant-dialog.c
index a28c513ef..1551b475d 100644
--- a/src/empathy-invite-participant-dialog.c
+++ b/src/empathy-invite-participant-dialog.c
@@ -25,9 +25,12 @@ enum
PROP_TP_CHAT = 1
};
+typedef struct _AddTemporaryIndividualCtx AddTemporaryIndividualCtx;
+
struct _EmpathyInviteParticipantDialogPrivate
{
EmpathyTpChat *tp_chat;
+ TpAccountManager *account_mgr;
EmpathyIndividualStore *store;
EmpathyIndividualView *view;
@@ -36,6 +39,10 @@ struct _EmpathyInviteParticipantDialogPrivate
GPtrArray *search_words;
gchar *search_str;
+
+ /* Context representing the FolksIndividual which are added because of the
+ * current search from the user. */
+ AddTemporaryIndividualCtx *add_temp_ctx;
};
static void
@@ -79,17 +86,58 @@ invite_participant_dialog_set_property (GObject *object,
};
}
+struct _AddTemporaryIndividualCtx
+{
+ EmpathyInviteParticipantDialog *self;
+ /* List of owned FolksIndividual */
+ GList *individuals;
+};
+
+static AddTemporaryIndividualCtx *
+add_temporary_individual_ctx_new (EmpathyInviteParticipantDialog *self)
+{
+ AddTemporaryIndividualCtx *ctx = g_slice_new0 (AddTemporaryIndividualCtx);
+
+ ctx->self = self;
+ return ctx;
+}
+
+static void
+add_temporary_individual_ctx_free (AddTemporaryIndividualCtx *ctx)
+{
+ GList *l;
+
+ /* Remove all the individuals from the model */
+ for (l = ctx->individuals; l != NULL; l = g_list_next (l))
+ {
+ FolksIndividual *individual = l->data;
+
+ individual_store_remove_individual_and_disconnect (ctx->self->priv->store,
+ individual);
+
+ g_object_unref (individual);
+ }
+
+ g_list_free (ctx->individuals);
+ g_slice_free (AddTemporaryIndividualCtx, ctx);
+}
+
static void
invite_participant_dialog_dispose (GObject *object)
{
EmpathyInviteParticipantDialog *self = (EmpathyInviteParticipantDialog *)
object;
+ tp_clear_pointer (&self->priv->add_temp_ctx,
+ add_temporary_individual_ctx_free);
+
tp_clear_object (&self->priv->tp_chat);
tp_clear_object (&self->priv->store);
tp_clear_pointer (&self->priv->search_words, g_ptr_array_unref);
tp_clear_pointer (&self->priv->search_str, g_free);
+ tp_clear_object (&self->priv->account_mgr);
+
G_OBJECT_CLASS (empathy_invite_participant_dialog_parent_class)->dispose (
object);
}
@@ -133,34 +181,39 @@ static TpContact *
get_tp_contact_for_chat (EmpathyInviteParticipantDialog *self,
FolksIndividual *individual)
{
- GList *personas, *l;
+ TpContact *contact = NULL;
TpConnection *chat_conn;
+ GeeSet *personas;
+ GeeIterator *iter;
chat_conn = tp_channel_borrow_connection ((TpChannel *) self->priv->tp_chat);
personas = folks_individual_get_personas (individual);
-
- for (l = personas; l != NULL; l = g_list_next (l))
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (contact == FALSE && gee_iterator_next (iter))
{
- TpfPersona *persona = l->data;
- TpContact *contact;
+ TpfPersona *persona = gee_iterator_get (iter);
TpConnection *contact_conn;
+ TpContact *contact_cur = NULL;
- if (!TPF_IS_PERSONA (persona))
- continue;
-
- contact = tpf_persona_get_contact (persona);
- if (contact == NULL)
- continue;
-
- contact_conn = tp_contact_get_connection (contact);
+ if (TPF_IS_PERSONA (persona))
+ {
+ contact_cur = tpf_persona_get_contact (persona);
+ if (contact_cur != NULL)
+ {
+ contact_conn = tp_contact_get_connection (contact_cur);
+
+ if (!tp_strdiff (tp_proxy_get_object_path (contact_conn),
+ tp_proxy_get_object_path (chat_conn)))
+ contact = contact_cur;
+ }
+ }
- if (!tp_strdiff (tp_proxy_get_object_path (contact_conn),
- tp_proxy_get_object_path (chat_conn)))
- return contact;
+ g_clear_object (&persona);
}
+ g_clear_object (&iter);
- return NULL;
+ return contact;
}
static gboolean
@@ -236,6 +289,95 @@ out:
}
static void
+get_contacts_cb (TpConnection *connection,
+ guint n_contacts,
+ TpContact * const *contacts,
+ const gchar * const *requested_ids,
+ GHashTable *failed_id_errors,
+ const GError *error,
+ gpointer user_data,
+ GObject *weak_object)
+{
+ EmpathyInviteParticipantDialog *self =
+ (EmpathyInviteParticipantDialog *) weak_object;
+ AddTemporaryIndividualCtx *ctx = user_data;
+ TpAccount *account;
+ TpfPersonaStore *store;
+ FolksIndividual *individual;
+ TpfPersona *persona_new;
+ GeeSet *personas;
+
+ if (self->priv->add_temp_ctx != ctx)
+ /* another request has been started */
+ return;
+
+ if (n_contacts != 1)
+ return;
+
+ account = g_object_get_data (G_OBJECT (connection), "account");
+
+ store = tpf_persona_store_new (account);
+ personas = GEE_SET (
+ gee_hash_set_new (FOLKS_TYPE_PERSONA, g_object_ref, g_object_unref,
+ g_direct_hash, g_direct_equal));
+ persona_new = tpf_persona_new (contacts[0], store);
+ gee_collection_add (GEE_COLLECTION (personas),
+ tpf_persona_new (contacts[0], store));
+
+ individual = folks_individual_new (personas);
+
+ /* Pass ownership to the list */
+ ctx->individuals = g_list_prepend (ctx->individuals, individual);
+
+ individual_store_add_individual_and_connect (self->priv->store, individual);
+
+ g_clear_object (&persona_new);
+ g_clear_object (&personas);
+ g_object_unref (store);
+}
+
+static void
+add_temporary_individuals (EmpathyInviteParticipantDialog *self,
+ const gchar *id)
+{
+ GList *accounts, *l;
+
+ tp_clear_pointer (&self->priv->add_temp_ctx,
+ add_temporary_individual_ctx_free);
+
+ if (tp_str_empty (id))
+ return;
+
+ self->priv->add_temp_ctx = add_temporary_individual_ctx_new (self);
+
+ /* Try to add an individual for each connected account */
+ accounts = tp_account_manager_get_valid_accounts (self->priv->account_mgr);
+ for (l = accounts; l != NULL; l = g_list_next (l))
+ {
+ TpAccount *account = l->data;
+ TpConnection *conn;
+ TpContactFeature features[] = { TP_CONTACT_FEATURE_ALIAS,
+ TP_CONTACT_FEATURE_AVATAR_DATA,
+ TP_CONTACT_FEATURE_PRESENCE,
+ TP_CONTACT_FEATURE_CAPABILITIES };
+
+ conn = tp_account_get_connection (account);
+ if (conn == NULL)
+ continue;
+
+ /* One day we'll have tp_connection_get_account()... */
+ g_object_set_data_full (G_OBJECT (conn), "account",
+ g_object_ref (account), g_object_unref);
+
+ tp_connection_get_contacts_by_id (conn, 1, &id, G_N_ELEMENTS (features),
+ features, get_contacts_cb, self->priv->add_temp_ctx, NULL,
+ G_OBJECT (self));
+ }
+
+ g_list_free (accounts);
+}
+
+static void
search_text_changed (GtkEntry *entry,
EmpathyInviteParticipantDialog *self)
{
@@ -249,6 +391,8 @@ search_text_changed (GtkEntry *entry,
self->priv->search_words = empathy_live_search_strip_utf8_string (id);
self->priv->search_str = g_strdup (id);
+ add_temporary_individuals (self, id);
+
empathy_individual_view_refilter (self->priv->view);
}
@@ -263,11 +407,20 @@ empathy_invite_participant_dialog_init (EmpathyInviteParticipantDialog *self)
GtkTreeSelection *selection;
GtkWidget *scroll;
GtkWidget *search_entry;
+ GQuark features[] = { TP_ACCOUNT_MANAGER_FEATURE_CORE, 0 };
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (
self, EMPATHY_TYPE_INVITE_PARTICIPANT_DIALOG,
EmpathyInviteParticipantDialogPrivate);
+ self->priv->account_mgr = tp_account_manager_dup ();
+
+ /* We don't wait for the CORE feature to be prepared, which is fine as we
+ * won't use the account manager until user starts searching. Furthermore,
+ * the AM has probably already been prepared by another Empathy
+ * component. */
+ tp_proxy_prepare_async (self->priv->account_mgr, features, NULL, NULL);
+
content = gtk_dialog_get_content_area (dialog);
label = gtk_label_new (NULL);
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index 069ad54ae..a9e76a286 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -204,18 +204,15 @@ main_window_flash_foreach (GtkTreeModel *model,
GdkPixbuf *pixbuf = NULL;
gtk_tree_model_get (model, iter,
- EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL,
- &individual,
+ EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
-1);
if (individual == NULL)
return FALSE;
contact = empathy_contact_dup_from_folks_individual (individual);
- if (contact != data->event->contact) {
- tp_clear_object (&contact);
- return FALSE;
- }
+ if (contact != data->event->contact)
+ goto out;
if (data->on) {
icon_name = data->event->icon_name;
@@ -244,6 +241,7 @@ main_window_flash_foreach (GtkTreeModel *model,
gtk_tree_path_free (parent_path);
}
+out:
g_object_unref (individual);
tp_clear_object (&contact);
tp_clear_object (&pixbuf);
@@ -434,11 +432,93 @@ main_window_auth_display (EmpathyMainWindow *window,
}
static void
+modify_event_count (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ EmpathyEvent *event,
+ gboolean increase)
+{
+ FolksIndividual *individual;
+ EmpathyContact *contact;
+ guint count;
+
+ gtk_tree_model_get (model, iter,
+ EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
+ EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &count,
+ -1);
+
+ if (individual == NULL)
+ return;
+
+ increase ? count++ : count--;
+
+ contact = empathy_contact_dup_from_folks_individual (individual);
+ if (contact == event->contact) {
+ gtk_tree_store_set (GTK_TREE_STORE (model), iter,
+ EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, count, -1);
+ }
+
+ tp_clear_object (&contact);
+ g_object_unref (individual);
+}
+
+static gboolean
+increase_event_count_foreach (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer user_data)
+{
+ EmpathyEvent *event = user_data;
+
+ modify_event_count (model, iter, event, TRUE);
+
+ return FALSE;
+}
+
+static void
+increase_event_count (EmpathyMainWindow *self,
+ EmpathyEvent *event)
+{
+ EmpathyMainWindowPriv *priv = GET_PRIV (self);
+ GtkTreeModel *model;
+
+ model = GTK_TREE_MODEL (priv->individual_store);
+
+ gtk_tree_model_foreach (model, increase_event_count_foreach, event);
+}
+
+static gboolean
+decrease_event_count_foreach (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer user_data)
+{
+ EmpathyEvent *event = user_data;
+
+ modify_event_count (model, iter, event, FALSE);
+
+ return FALSE;
+}
+
+static void
+decrease_event_count (EmpathyMainWindow *self,
+ EmpathyEvent *event)
+{
+ EmpathyMainWindowPriv *priv = GET_PRIV (self);
+ GtkTreeModel *model;
+
+ model = GTK_TREE_MODEL (priv->individual_store);
+
+ gtk_tree_model_foreach (model, decrease_event_count_foreach, event);
+}
+
+static void
main_window_event_added_cb (EmpathyEventManager *manager,
EmpathyEvent *event,
EmpathyMainWindow *window)
{
if (event->contact) {
+ increase_event_count (window, event);
+
main_window_flash_start (window);
} else if (event->type == EMPATHY_EVENT_TYPE_AUTH) {
main_window_auth_display (window, event);
@@ -462,6 +542,8 @@ main_window_event_removed_cb (EmpathyEventManager *manager,
return;
}
+ decrease_event_count (window, event);
+
data.on = FALSE;
data.event = event;
data.window = window;
diff --git a/src/empathy-preferences.c b/src/empathy-preferences.c
index f90724c7f..9aa21e8b0 100644
--- a/src/empathy-preferences.c
+++ b/src/empathy-preferences.c
@@ -85,6 +85,8 @@ struct _EmpathyPreferencesPriv {
GtkWidget *vbox_chat_theme;
GtkWidget *combobox_chat_theme;
+ GtkWidget *combobox_chat_theme_variant;
+ GtkWidget *hbox_chat_theme_variant;
GtkWidget *sw_chat_theme_preview;
EmpathyChatView *chat_theme_preview;
EmpathyThemeManager *theme_manager;
@@ -127,10 +129,17 @@ enum {
COL_THEME_NAME,
COL_THEME_IS_ADIUM,
COL_THEME_ADIUM_PATH,
+ COL_THEME_ADIUM_INFO,
COL_THEME_COUNT
};
enum {
+ COL_VARIANT_NAME,
+ COL_VARIANT_DEFAULT,
+ COL_VARIANT_COUNT
+};
+
+enum {
COL_SOUND_ENABLED,
COL_SOUND_NAME,
COL_SOUND_KEY,
@@ -734,6 +743,156 @@ preferences_preview_theme_changed_cb (EmpathyThemeManager *manager,
}
static void
+preferences_theme_variant_changed_cb (GtkComboBox *combo,
+ EmpathyPreferences *preferences)
+{
+ EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
+ GtkTreeIter iter;
+
+ if (gtk_combo_box_get_active_iter (combo, &iter)) {
+ GtkTreeModel *model;
+ gchar *name;
+
+ model = gtk_combo_box_get_model (combo);
+ gtk_tree_model_get (model, &iter,
+ COL_VARIANT_NAME, &name,
+ -1);
+
+ g_settings_set_string (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_THEME_VARIANT,
+ name);
+
+ g_free (name);
+ }
+}
+
+static void
+preferences_theme_variant_notify_cb (GSettings *gsettings,
+ const gchar *key,
+ gpointer user_data)
+{
+ EmpathyPreferences *preferences = user_data;
+ EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
+ GtkComboBox *combo;
+ gchar *conf_name;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreeIter default_iter;
+ gboolean found_default = FALSE;
+ gboolean found = FALSE;
+ gboolean ok;
+
+ conf_name = g_settings_get_string (gsettings, EMPATHY_PREFS_CHAT_THEME_VARIANT);
+ combo = GTK_COMBO_BOX (priv->combobox_chat_theme_variant);
+ model = gtk_combo_box_get_model (combo);
+
+ for (ok = gtk_tree_model_get_iter_first (model, &iter);
+ ok && !found;
+ ok = gtk_tree_model_iter_next (model, &iter)) {
+ gchar *name;
+ gboolean is_default;
+
+ gtk_tree_model_get (model, &iter,
+ COL_VARIANT_NAME, &name,
+ COL_VARIANT_DEFAULT, &is_default,
+ -1);
+
+ if (!tp_strdiff (name, conf_name)) {
+ found = TRUE;
+ gtk_combo_box_set_active_iter (combo, &iter);
+ }
+ if (is_default) {
+ found_default = TRUE;
+ default_iter = iter;
+ }
+
+ g_free (name);
+ }
+
+ /* Fallback to the first one. */
+ if (!found) {
+ if (found_default) {
+ gtk_combo_box_set_active_iter (combo, &default_iter);
+ } else if (gtk_tree_model_get_iter_first (model, &iter)) {
+ gtk_combo_box_set_active_iter (combo, &iter);
+ }
+ }
+
+ g_free (conf_name);
+}
+
+static void
+preferences_theme_variants_fill (EmpathyPreferences *preferences,
+ GHashTable *info)
+{
+ EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
+ GtkTreeModel *model;
+ GtkListStore *store;
+ GPtrArray *variants;
+ const gchar *default_variant;
+ guint i;
+
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->combobox_chat_theme_variant));
+ store = GTK_LIST_STORE (model);
+ gtk_list_store_clear (store);
+
+ variants = empathy_adium_info_get_available_variants (info);
+ default_variant = empathy_adium_info_get_default_variant (info);
+ for (i = 0; i < variants->len; i++) {
+ gchar *name = g_ptr_array_index (variants, i);
+
+ gtk_list_store_insert_with_values (store, NULL, -1,
+ COL_VARIANT_NAME, name,
+ COL_VARIANT_DEFAULT, !tp_strdiff (name, default_variant),
+ -1);
+ }
+
+ /* Select the variant from the GSetting key */
+ preferences_theme_variant_notify_cb (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_THEME_VARIANT,
+ preferences);
+}
+
+static void
+preferences_theme_variants_setup (EmpathyPreferences *preferences)
+{
+ EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
+ GtkComboBox *combo;
+ GtkCellLayout *cell_layout;
+ GtkCellRenderer *renderer;
+ GtkListStore *store;
+
+ combo = GTK_COMBO_BOX (priv->combobox_chat_theme_variant);
+ cell_layout = GTK_CELL_LAYOUT (combo);
+
+ /* Create the model */
+ store = gtk_list_store_new (COL_VARIANT_COUNT,
+ G_TYPE_STRING, /* name */
+ G_TYPE_BOOLEAN); /* is default */
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
+ COL_VARIANT_NAME, GTK_SORT_ASCENDING);
+
+ /* Add cell renderer */
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (cell_layout, renderer, TRUE);
+ gtk_cell_layout_set_attributes (cell_layout, renderer,
+ "text", COL_VARIANT_NAME, NULL);
+
+ gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store));
+ g_object_unref (store);
+
+ g_signal_connect (combo, "changed",
+ G_CALLBACK (preferences_theme_variant_changed_cb),
+ preferences);
+
+ /* Track changes of the GSetting key */
+ g_signal_connect (priv->gsettings_chat,
+ "changed::" EMPATHY_PREFS_CHAT_THEME_VARIANT,
+ G_CALLBACK (preferences_theme_variant_notify_cb),
+ preferences);
+}
+
+static void
preferences_theme_changed_cb (GtkComboBox *combo,
EmpathyPreferences *preferences)
{
@@ -745,12 +904,14 @@ preferences_theme_changed_cb (GtkComboBox *combo,
gboolean is_adium;
gchar *name;
gchar *path;
+ GHashTable *info;
model = gtk_combo_box_get_model (combo);
gtk_tree_model_get (model, &iter,
COL_THEME_IS_ADIUM, &is_adium,
COL_THEME_NAME, &name,
COL_THEME_ADIUM_PATH, &path,
+ COL_THEME_ADIUM_INFO, &info,
-1);
g_settings_set_string (priv->gsettings_chat,
@@ -760,10 +921,14 @@ preferences_theme_changed_cb (GtkComboBox *combo,
g_settings_set_string (priv->gsettings_chat,
EMPATHY_PREFS_CHAT_ADIUM_PATH,
path);
+ preferences_theme_variants_fill (preferences, info);
+ gtk_widget_show (priv->hbox_chat_theme_variant);
+ } else {
+ gtk_widget_hide (priv->hbox_chat_theme_variant);
}
-
g_free (name);
g_free (path);
+ tp_clear_pointer (&info, g_hash_table_unref);
}
}
@@ -833,6 +998,8 @@ preferences_themes_setup (EmpathyPreferences *preferences)
GList *adium_themes;
gint i;
+ preferences_theme_variants_setup (preferences);
+
combo = GTK_COMBO_BOX (priv->combobox_chat_theme);
cell_layout = GTK_CELL_LAYOUT (combo);
@@ -841,7 +1008,8 @@ preferences_themes_setup (EmpathyPreferences *preferences)
G_TYPE_STRING, /* Display name */
G_TYPE_STRING, /* Theme name */
G_TYPE_BOOLEAN, /* Is an Adium theme */
- G_TYPE_STRING); /* Adium theme path */
+ G_TYPE_STRING, /* Adium theme path */
+ G_TYPE_HASH_TABLE); /* Adium theme info */
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
COL_THEME_VISIBLE_NAME, GTK_SORT_ASCENDING);
@@ -871,6 +1039,7 @@ preferences_themes_setup (EmpathyPreferences *preferences)
COL_THEME_NAME, "adium",
COL_THEME_IS_ADIUM, TRUE,
COL_THEME_ADIUM_PATH, path,
+ COL_THEME_ADIUM_INFO, info,
-1);
}
g_hash_table_unref (info);
@@ -972,6 +1141,8 @@ empathy_preferences_init (EmpathyPreferences *preferences)
"checkbutton_show_contacts_in_rooms", &priv->checkbutton_show_contacts_in_rooms,
"vbox_chat_theme", &priv->vbox_chat_theme,
"combobox_chat_theme", &priv->combobox_chat_theme,
+ "combobox_chat_theme_variant", &priv->combobox_chat_theme_variant,
+ "hbox_chat_theme_variant", &priv->hbox_chat_theme_variant,
"sw_chat_theme_preview", &priv->sw_chat_theme_preview,
"checkbutton_separate_chat_windows", &priv->checkbutton_separate_chat_windows,
"checkbutton_events_notif_area", &priv->checkbutton_events_notif_area,
diff --git a/src/empathy-preferences.ui b/src/empathy-preferences.ui
index 6bc17b761..2549d51ad 100644
--- a/src/empathy-preferences.ui
+++ b/src/empathy-preferences.ui
@@ -865,48 +865,47 @@
<property name="position">1</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="hbox_chat_theme_variant">
- <property name="visible">False</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
<child>
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Theme Variant:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">combobox_chat_theme_variant</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="combobox_chat_theme_variant">
- <property name="visible">True</property>
+ <object class="GtkBox" id="hbox_chat_theme_variant">
<property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Variant:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">combobox_chat_theme_variant</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="combobox_chat_theme_variant">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -921,7 +920,7 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>