diff options
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); @@ -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." @@ -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" @@ -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 "הזמנה" @@ -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> |