diff options
30 files changed, 4807 insertions, 2366 deletions
diff --git a/configure.ac b/configure.ac index 8646a1aa1..e5366137a 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,7 @@ AC_COPYRIGHT([ # Minimal version required # Hardp deps -FOLKS_REQUIRED=0.5.1 +FOLKS_REQUIRED=0.6.0 GLIB_REQUIRED=2.28.0 GNUTLS_REQUIRED=2.8.5 GTK_REQUIRED=3.0.2 diff --git a/data/org.gnome.Empathy.gschema.xml.in b/data/org.gnome.Empathy.gschema.xml.in index bf9f20fdd..f51b51b00 100644 --- a/data/org.gnome.Empathy.gschema.xml.in +++ b/data/org.gnome.Empathy.gschema.xml.in @@ -231,6 +231,16 @@ present them to the user immediately.</_description> <_summary>Call volume</_summary> <_description>Call volume, as a percentage.</_description> </key> + <key name="camera-device" type="s"> + <default>''</default> + <_summary>Camera device</_summary> + <_description>Default camera device to use in video calls, e.g. /dev/video0.</_description> + </key> + <key name="echo-cancellation" type="b"> + <default>true</default> + <_summary>Echo cancellation support</_summary> + <_description>Whether to enable Pulseaudio's echo cancellation filter.</_description> + </key> </schema> <schema id="org.gnome.Empathy.hints" path="/org/gnome/empathy/hints/"> <key name="close-main-window" type="b"> diff --git a/help/sl/sl.po b/help/sl/sl.po index 0f7fa2d52..ec80885f0 100644 --- a/help/sl/sl.po +++ b/help/sl/sl.po @@ -2262,56 +2262,3 @@ msgstr "Izberite izbirno polje v stolpcu <gui>SSL</gui> za šifriranje vse komun #: C/index.page:0(None) msgid "translator-credits" msgstr "Andrej Žnidaršič <andrej.znidarsic@gmail.com>, 2010" - -#~ msgid "" -#~ "To turn a video conversation into an audio conversation, choose " -#~ "<guiseq><gui style=\"menu\">Video</gui><gui style=\"menuitem\">Video Off</" -#~ "gui></guiseq>, or click the <media type=\"image\" mime=\"image/png\" src=" -#~ "\"figures/camera-web.png\">video call</media> toolbar button to deselect " -#~ "it." -#~ msgstr "" -#~ "Za spremembo video pogovora v zvočni pogovor izberite<guiseq><gui style=" -#~ "\"menu\">Video</gui><gui style=\"menuitem\">Izklopi video</gui></guiseq> " -#~ "ali v orodni vrstici kliknite gumb <media type=\"image\" mime=\"image/png" -#~ "\" src=\"figures/camera-web.png\">video klic</media> za odstranitev " -#~ "njegove izbire." - -#~ msgid "" -#~ "Click on the trash icon next to the account name to remove the account." -#~ msgstr "Kliknite na ikono smeti poleg imena računa za njegovo odstranitev." - -#~ msgid "To join such a room, if you know the password:" -#~ msgstr "Za pridružitev takšni sobi, v primeru da veste geslo:" - -#~ msgid "" -#~ "There are a number of popular free SIP account providers; one popular " -#~ "provider is <link href=\"https://signup.sipphone.com/new-users/app?" -#~ "class=NewUser;proc=start\">Sipphone</link>." -#~ msgstr "" -#~ "Obstaja veliko brezplačnih ponudnikov SIP; eden od priljubljenih " -#~ "ponudnikov je <link href=\"https://signup.sipphone.com/new-users/app?" -#~ "class=NewUser;proc=start\">Sipphone</link>." - -#~ msgid "" -#~ "From the <gui>Contact List</gui> window, click the <media type=\"image\" " -#~ "mime=\"image/png\" src=\"figures/audio-input-microphone.png\">audio call</" -#~ "media> icon next to the name of the contact you wish to call and choose " -#~ "<gui style=\"menuitem\">Audio Call</gui>. Alternatively, right click the " -#~ "contact and choose <gui style=\"menuitem\">Audio Call</gui>." -#~ msgstr "" -#~ "V oknu <gui>Seznam stikov</gui> kliknite ikono <media type=\"image\" mime=" -#~ "\"image/png\" src=\"figures/audio-input-microphone.png\">zvočni klic</" -#~ "media> poleg imena stika, ki ga želite klicati in izberite <gui style=" -#~ "\"menuitem\">Zvočni klic</gui>. Dodatno lahko desno kliknete na stik in " -#~ "izberete <gui style=\"menuitem\">Zvočni klic</gui>." - -#~ msgid "" -#~ "To turn an audio conversation into a video conversation, choose " -#~ "<guiseq><gui style=\"menu\">Video</gui><gui style=\"menuitem\">Video On</" -#~ "gui></guiseq>, or click the <media type=\"image\" mime=\"image/png\" src=" -#~ "\"figures/camera-web.png\">video call</media> toolbar button to select it." -#~ msgstr "" -#~ "Za spremembo zvočnega pogovora v video pogovor izberite <guiseq><gui " -#~ "style=\"menu\">Video</gui><gui style=\"menuitem\">Video vklopljen</gui></" -#~ "guiseq> ali za izbiro kliknite na gumb <media type=\"image\" mime=\"image/" -#~ "png\" src=\"figures/camera-web.png\">video klic</media> v orodni vrstici." diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c index 2991784f1..eb01fe25b 100644 --- a/libempathy-gtk/empathy-call-utils.c +++ b/libempathy-gtk/empathy-call-utils.c @@ -23,6 +23,7 @@ #include <glib/gi18n.h> #include <gtk/gtk.h> +#include <pulse/pulseaudio.h> #include <telepathy-glib/telepathy-glib.h> @@ -30,6 +31,7 @@ #include "empathy-call-utils.h" +#include <libempathy/empathy-gsettings.h> #include <libempathy/empathy-request-util.h> #define DEBUG_FLAG EMPATHY_DEBUG_OTHER @@ -192,3 +194,32 @@ empathy_call_new_with_streams (const gchar *contact, g_hash_table_unref (streamed_media_request); g_object_unref (call_req); } + +void +empathy_call_set_stream_properties (GstElement *element) +{ + GstStructure *props; + GSettings *gsettings_call; + gboolean echo_cancellation; + + gsettings_call = g_settings_new (EMPATHY_PREFS_CALL_SCHEMA); + + echo_cancellation = g_settings_get_boolean (gsettings_call, + EMPATHY_PREFS_CALL_ECHO_CANCELLATION); + + props = gst_structure_new ("props", + PA_PROP_MEDIA_ROLE, G_TYPE_STRING, "phone", + NULL); + + if (echo_cancellation) + { + gst_structure_set (props, + "filter.want", G_TYPE_STRING, "echo-cancel", + NULL); + } + + g_object_set (element, "stream-properties", props, NULL); + gst_structure_free (props); + + g_object_unref (gsettings_call); +} diff --git a/libempathy-gtk/empathy-call-utils.h b/libempathy-gtk/empathy-call-utils.h index 99a97f202..87676161c 100644 --- a/libempathy-gtk/empathy-call-utils.h +++ b/libempathy-gtk/empathy-call-utils.h @@ -21,6 +21,8 @@ #ifndef __EMPATHY_CALL_UTILS_H__ #define __EMPATHY_CALL_UTILS_H__ +#include <gst/gst.h> + G_BEGIN_DECLS /* Calls */ @@ -38,6 +40,8 @@ GHashTable * empathy_call_create_streamed_media_request (const gchar *contact, gboolean initial_audio, gboolean initial_video); +void empathy_call_set_stream_properties (GstElement *element); + G_END_DECLS #endif /* __EMPATHY_CALL_UTILS_H__ */ diff --git a/libempathy-gtk/empathy-log-window.c b/libempathy-gtk/empathy-log-window.c index e5c935011..69f461a2b 100644 --- a/libempathy-gtk/empathy-log-window.c +++ b/libempathy-gtk/empathy-log-window.c @@ -2586,7 +2586,7 @@ when_row_is_separator (GtkTreeModel *model, COL_WHEN_TEXT, &when, -1); - ret = g_str_equal (when, "separator"); + ret = !tp_strdiff (when, "separator"); g_free (when); return ret; } diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index 8ad7dfb4b..060e0aab5 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -526,13 +526,18 @@ typedef struct { GSimpleAsyncResult *result; guint width; guint height; + struct SizeData size_data; + GdkPixbufLoader *loader; + GCancellable *cancellable; + guint8 data[512]; } PixbufAvatarFromIndividualClosure; static PixbufAvatarFromIndividualClosure * pixbuf_avatar_from_individual_closure_new (FolksIndividual *individual, GSimpleAsyncResult *result, gint width, - gint height) + gint height, + GCancellable *cancellable) { PixbufAvatarFromIndividualClosure *closure; @@ -544,6 +549,7 @@ pixbuf_avatar_from_individual_closure_new (FolksIndividual *individual, closure->result = g_object_ref (result); closure->width = width; closure->height = height; + closure->cancellable = g_object_ref (cancellable); return closure; } @@ -552,65 +558,120 @@ static void pixbuf_avatar_from_individual_closure_free ( PixbufAvatarFromIndividualClosure *closure) { + g_object_unref (closure->cancellable); + tp_clear_object (&closure->loader); g_object_unref (closure->individual); g_object_unref (closure->result); g_free (closure); } static void -avatar_file_load_contents_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) +avatar_icon_load_read_cb (GObject *object, + GAsyncResult *result, + gpointer user_data) { - GFile *file = G_FILE (object); + GInputStream *stream = G_INPUT_STREAM (object); PixbufAvatarFromIndividualClosure *closure = user_data; - char *data = NULL; - gsize data_size; - struct SizeData size_data; + gssize n_read; GError *error = NULL; - GdkPixbufLoader *loader = NULL; - if (!g_file_load_contents_finish (file, result, &data, &data_size, - NULL, &error)) { - DEBUG ("failed to load avatar from file: %s", - error->message); + /* Finish reading this chunk from the stream */ + n_read = g_input_stream_read_finish (stream, result, &error); + if (error != NULL) { + DEBUG ("Failed to finish read from pixbuf stream: %s", + error->message); g_simple_async_result_set_from_error (closure->result, error); - goto out; + goto out_close; } - size_data.width = closure->width; - size_data.height = closure->height; - size_data.preserve_aspect_ratio = TRUE; - - loader = gdk_pixbuf_loader_new (); - - g_signal_connect (loader, "size-prepared", - G_CALLBACK (pixbuf_from_avatar_size_prepared_cb), - &size_data); - - if (!gdk_pixbuf_loader_write (loader, (guchar *) data, data_size, - &error)) { + /* Write the chunk to the pixbuf loader */ + if (!gdk_pixbuf_loader_write (closure->loader, (guchar *) closure->data, + n_read, &error)) { DEBUG ("Failed to write to pixbuf loader: %s", error ? error->message : "No error given"); g_simple_async_result_set_from_error (closure->result, error); + goto out_close; + } + + if (n_read == 0) { + /* EOF? */ + if (!gdk_pixbuf_loader_close (closure->loader, &error)) { + DEBUG ("Failed to close pixbuf loader: %s", + error ? error->message : "No error given"); + g_simple_async_result_set_from_error (closure->result, error); + goto out; + } + + /* We're done. */ + g_simple_async_result_set_op_res_gpointer (closure->result, + avatar_pixbuf_from_loader (closure->loader), + g_object_unref); + goto out; + } else { + /* Loop round and read another chunk. */ + g_input_stream_read_async (stream, closure->data, + G_N_ELEMENTS (closure->data), + G_PRIORITY_DEFAULT, closure->cancellable, + avatar_icon_load_read_cb, closure); + + return; } - if (!gdk_pixbuf_loader_close (loader, &error)) { - DEBUG ("Failed to close pixbuf loader: %s", - error ? error->message : "No error given"); + +out_close: + /* We must close the pixbuf loader before unreffing it. */ + gdk_pixbuf_loader_close (closure->loader, NULL); + +out: + g_simple_async_result_complete (closure->result); + + g_clear_error (&error); + pixbuf_avatar_from_individual_closure_free (closure); +} + +static void +avatar_icon_load_cb (GObject *object, + GAsyncResult *result, + gpointer user_data) +{ + GLoadableIcon *icon = G_LOADABLE_ICON (object); + PixbufAvatarFromIndividualClosure *closure = user_data; + GInputStream *stream; + GError *error = NULL; + + stream = g_loadable_icon_load_finish (icon, result, NULL, &error); + if (error != NULL) { + DEBUG ("Failed to open avatar stream: %s", error->message); g_simple_async_result_set_from_error (closure->result, error); goto out; } - g_simple_async_result_set_op_res_gpointer (closure->result, - avatar_pixbuf_from_loader (loader), g_object_unref); + closure->size_data.width = closure->width; + closure->size_data.height = closure->height; + closure->size_data.preserve_aspect_ratio = TRUE; + + /* Load the data into a pixbuf loader in chunks. */ + closure->loader = gdk_pixbuf_loader_new (); + + g_signal_connect (closure->loader, "size-prepared", + G_CALLBACK (pixbuf_from_avatar_size_prepared_cb), + &(closure->size_data)); + + /* Begin to read the first chunk. */ + g_input_stream_read_async (stream, closure->data, + G_N_ELEMENTS (closure->data), + G_PRIORITY_DEFAULT, closure->cancellable, + avatar_icon_load_read_cb, closure); + + g_object_unref (stream); + + return; out: g_simple_async_result_complete (closure->result); g_clear_error (&error); - g_free (data); - tp_clear_object (&loader); + tp_clear_object (&stream); pixbuf_avatar_from_individual_closure_free (closure); } @@ -623,7 +684,7 @@ empathy_pixbuf_avatar_from_individual_scaled_async ( GAsyncReadyCallback callback, gpointer user_data) { - GFile *avatar_file; + GLoadableIcon *avatar_icon; GSimpleAsyncResult *result; PixbufAvatarFromIndividualClosure *closure; @@ -631,18 +692,19 @@ empathy_pixbuf_avatar_from_individual_scaled_async ( callback, user_data, empathy_pixbuf_avatar_from_individual_scaled_async); - avatar_file = + avatar_icon = folks_avatar_details_get_avatar (FOLKS_AVATAR_DETAILS (individual)); - if (avatar_file == NULL) + if (avatar_icon == NULL) goto out; closure = pixbuf_avatar_from_individual_closure_new (individual, result, - width, height); + width, height, + cancellable); if (closure == NULL) goto out; - g_file_load_contents_async (avatar_file, cancellable, - avatar_file_load_contents_cb, closure); + g_loadable_icon_load_async (avatar_icon, width, cancellable, + avatar_icon_load_cb, closure); g_object_unref (result); diff --git a/libempathy/empathy-camera-monitor.c b/libempathy/empathy-camera-monitor.c index 3d80d40b7..3b5221eb8 100644 --- a/libempathy/empathy-camera-monitor.c +++ b/libempathy/empathy-camera-monitor.c @@ -34,6 +34,7 @@ struct _EmpathyCameraMonitorPrivate { CheeseCameraDeviceMonitor *cheese_monitor; + GQueue *cameras; gint num_cameras; }; @@ -43,10 +44,69 @@ enum PROP_AVAILABLE, }; +enum +{ + CAMERA_ADDED, + CAMERA_REMOVED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + G_DEFINE_TYPE (EmpathyCameraMonitor, empathy_camera_monitor, G_TYPE_OBJECT); static EmpathyCameraMonitor *manager_singleton = NULL; +static EmpathyCamera * +empathy_camera_new (const gchar *id, + const gchar *device, + const gchar *name) +{ + EmpathyCamera *camera = g_slice_new (EmpathyCamera); + + camera->id = g_strdup (id); + camera->device = g_strdup (device); + camera->name = g_strdup (name); + + return camera; +} + +static EmpathyCamera * +empathy_camera_copy (EmpathyCamera *camera) +{ + return empathy_camera_new (camera->id, camera->device, camera->name); +} + +static void +empathy_camera_free (EmpathyCamera *camera) +{ + g_free (camera->id); + g_free (camera->device); + g_free (camera->name); + + g_slice_free (EmpathyCamera, camera); +} + +G_DEFINE_BOXED_TYPE (EmpathyCamera, empathy_camera, + empathy_camera_copy, empathy_camera_free) + +static gint +empathy_camera_find (gconstpointer a, + gconstpointer b) +{ + const EmpathyCamera *camera = a; + const gchar *id = b; + + return g_strcmp0 (camera->id, id); +} + +static void +empathy_camera_monitor_free_camera_foreach (gpointer data, + gpointer user_data) +{ + empathy_camera_free (data); +} + static void on_camera_added (CheeseCameraDeviceMonitor *device, gchar *id, @@ -55,10 +115,19 @@ on_camera_added (CheeseCameraDeviceMonitor *device, gint api_version, EmpathyCameraMonitor *self) { + EmpathyCamera *camera = empathy_camera_new (id, filename, product_name); + + if (self->priv->cameras == NULL) + return; + + g_queue_push_tail (self->priv->cameras, camera); + self->priv->num_cameras++; if (self->priv->num_cameras == 1) g_object_notify (G_OBJECT (self), "available"); + + g_signal_emit (self, signals[CAMERA_ADDED], 0, camera); } static void @@ -66,10 +135,37 @@ on_camera_removed (CheeseCameraDeviceMonitor *device, gchar *id, EmpathyCameraMonitor *self) { + EmpathyCamera *camera; + GList *l; + + if (self->priv->cameras == NULL) + return; + + l = g_queue_find_custom (self->priv->cameras, id, empathy_camera_find); + + g_return_if_fail (l != NULL); + + camera = l->data; + + g_queue_delete_link (self->priv->cameras, l); + self->priv->num_cameras--; if (self->priv->num_cameras == 0) g_object_notify (G_OBJECT (self), "available"); + + g_signal_emit (self, signals[CAMERA_REMOVED], 0, camera); + + empathy_camera_free (camera); +} + +const GList * +empathy_camera_monitor_get_cameras (EmpathyCameraMonitor *self) +{ + if (self->priv->cameras != NULL) + return self->priv->cameras->head; + else + return NULL; } static void @@ -98,31 +194,11 @@ empathy_camera_monitor_dispose (GObject *object) tp_clear_object (&self->priv->cheese_monitor); - G_OBJECT_CLASS (empathy_camera_monitor_parent_class)->dispose (object); -} - -static GObject * -empathy_camera_monitor_constructor (GType type, - guint n_props, - GObjectConstructParam *props) -{ - GObject *retval; - - if (manager_singleton) - { - retval = g_object_ref (manager_singleton); - } - else - { - retval = - G_OBJECT_CLASS (empathy_camera_monitor_parent_class)-> - constructor (type, n_props, props); + g_queue_foreach (self->priv->cameras, + empathy_camera_monitor_free_camera_foreach, NULL); + tp_clear_pointer (&self->priv->cameras, g_queue_free); - manager_singleton = EMPATHY_CAMERA_MONITOR (retval); - g_object_add_weak_pointer (retval, (gpointer) & manager_singleton); - } - - return retval; + G_OBJECT_CLASS (empathy_camera_monitor_parent_class)->dispose (object); } static void @@ -141,7 +217,6 @@ empathy_camera_monitor_class_init (EmpathyCameraMonitorClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = empathy_camera_monitor_dispose; - object_class->constructor = empathy_camera_monitor_constructor; object_class->constructed = empathy_camera_monitor_constructed; object_class->get_property = empathy_camera_monitor_get_property; @@ -149,6 +224,20 @@ empathy_camera_monitor_class_init (EmpathyCameraMonitorClass *klass) g_param_spec_boolean ("available", "Available", "Camera available", TRUE, G_PARAM_READABLE)); + signals[CAMERA_ADDED] = + g_signal_new ("added", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + 0, NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, EMPATHY_TYPE_CAMERA); + + signals[CAMERA_REMOVED] = + g_signal_new ("removed", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + 0, NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, EMPATHY_TYPE_CAMERA); + g_type_class_add_private (object_class, sizeof (EmpathyCameraMonitorPrivate)); } @@ -159,6 +248,8 @@ empathy_camera_monitor_init (EmpathyCameraMonitor *self) self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EMPATHY_TYPE_CAMERA_MONITOR, EmpathyCameraMonitorPrivate); + self->priv->cameras = g_queue_new (); + self->priv->cheese_monitor = cheese_camera_device_monitor_new (); g_signal_connect (self->priv->cheese_monitor, "added", @@ -175,7 +266,28 @@ empathy_camera_monitor_init (EmpathyCameraMonitor *self) EmpathyCameraMonitor * empathy_camera_monitor_dup_singleton (void) { - return g_object_new (EMPATHY_TYPE_CAMERA_MONITOR, NULL); + GObject *retval; + + if (manager_singleton) + { + retval = g_object_ref (manager_singleton); + } + else + { + retval = g_object_new (EMPATHY_TYPE_CAMERA_MONITOR, NULL); + + manager_singleton = EMPATHY_CAMERA_MONITOR (retval); + g_object_add_weak_pointer (retval, (gpointer) &manager_singleton); + } + + return EMPATHY_CAMERA_MONITOR (retval); +} + +EmpathyCameraMonitor * +empathy_camera_monitor_new (void) +{ + return EMPATHY_CAMERA_MONITOR ( + g_object_new (EMPATHY_TYPE_CAMERA_MONITOR, NULL)); } gboolean empathy_camera_monitor_get_available (EmpathyCameraMonitor *self) diff --git a/libempathy/empathy-camera-monitor.h b/libempathy/empathy-camera-monitor.h index d2d9bb89e..f627f7b58 100644 --- a/libempathy/empathy-camera-monitor.h +++ b/libempathy/empathy-camera-monitor.h @@ -46,11 +46,24 @@ struct _EmpathyCameraMonitorClass GObjectClass parent_class; }; +typedef struct +{ + gchar *id; + gchar *device; + gchar *name; +} EmpathyCamera; + +#define EMPATHY_TYPE_CAMERA (empathy_camera_get_type ()) +GType empathy_camera_get_type (void) G_GNUC_CONST; + GType empathy_camera_monitor_get_type (void) G_GNUC_CONST; EmpathyCameraMonitor *empathy_camera_monitor_dup_singleton (void); +EmpathyCameraMonitor *empathy_camera_monitor_new (void); gboolean empathy_camera_monitor_get_available (EmpathyCameraMonitor *self); +const GList * empathy_camera_monitor_get_cameras (EmpathyCameraMonitor *self); + G_END_DECLS #endif /* __EMPATHY_CAMERA_MONITOR_H__ */ diff --git a/libempathy/empathy-gsettings.h b/libempathy/empathy-gsettings.h index 5a9fa95f8..96c869da4 100644 --- a/libempathy/empathy-gsettings.h +++ b/libempathy/empathy-gsettings.h @@ -53,6 +53,8 @@ G_BEGIN_DECLS #define EMPATHY_PREFS_CALL_SCHEMA EMPATHY_PREFS_SCHEMA ".call" #define EMPATHY_PREFS_CALL_SOUND_VOLUME "volume" +#define EMPATHY_PREFS_CALL_CAMERA_DEVICE "camera-device" +#define EMPATHY_PREFS_CALL_ECHO_CANCELLATION "echo-cancellation" #define EMPATHY_PREFS_CHAT_SCHEMA EMPATHY_PREFS_SCHEMA ".conversation" #define EMPATHY_PREFS_CHAT_SHOW_SMILEYS "graphical-smileys" diff --git a/libempathy/empathy-message.c b/libempathy/empathy-message.c index 1c18cf53c..06b3308c5 100644 --- a/libempathy/empathy-message.c +++ b/libempathy/empathy-message.c @@ -787,6 +787,7 @@ empathy_message_new_from_tp_message (TpMessage *tp_msg, gint64 timestamp; gint64 original_timestamp; const GHashTable *part = tp_message_peek (tp_msg, 0); + gboolean is_backlog; g_return_val_if_fail (TP_IS_MESSAGE (tp_msg), NULL); @@ -799,6 +800,9 @@ empathy_message_new_from_tp_message (TpMessage *tp_msg, original_timestamp = tp_asv_get_int64 (part, "original-message-received", NULL); + is_backlog = (flags & TP_CHANNEL_TEXT_MESSAGE_FLAG_SCROLLBACK) == + TP_CHANNEL_TEXT_MESSAGE_FLAG_SCROLLBACK; + message = g_object_new (EMPATHY_TYPE_MESSAGE, "body", body, "token", tp_message_get_token (tp_msg), @@ -807,7 +811,7 @@ empathy_message_new_from_tp_message (TpMessage *tp_msg, "timestamp", timestamp, "original-timestamp", original_timestamp, "flags", flags, - "is-backlog", flags & TP_CHANNEL_TEXT_MESSAGE_FLAG_SCROLLBACK, + "is-backlog", is_backlog, "incoming", incoming, "tp-message", tp_msg, NULL); @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: empathy 2.28.1.1\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=empathy&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-04-21 09:08+0000\n" -"PO-Revision-Date: 2011-04-22 01:05+0330\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=empathy&keywords=I18N+L10N&component=General\n" +"POT-Creation-Date: 2011-08-10 11:03+0000\n" +"PO-Revision-Date: 2011-08-13 02:35+0330\n" "Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n" "Language-Team: Persian <translate@ifsug.org>\n" -"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-Language: Persian\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" @@ -42,358 +42,386 @@ msgid "Always open a separate chat window for new chats." msgstr "برای گپهای جدید، همیشه یک پنجرهی جدید گپ باز شود." #: ../data/org.gnome.Empathy.gschema.xml.in.h:2 +msgid "Call volume" +msgstr "بلندی صدای تماس" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:3 +msgid "Call volume, as a percentage." +msgstr "بلندی صدای تماس، بر اساس درصد" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:4 msgid "Character to add after nickname when using nick completion (tab) in group chat." msgstr "نویسهای که هنگام کامل کردن اسم (با کلید جهش) در گپ گروهی، بعد از نام مستعار اضافه میشود." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:3 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:5 msgid "Chat window theme" msgstr "تم پنجرهی گپ" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:4 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:6 +#| msgid "Chat window theme" +msgid "Chat window theme variant" +msgstr "گزینههای تم پنجرهی گپ" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:7 msgid "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")." msgstr "فهرست زبانها جهت غلطیابی املایی، جدا شده با ویرگول (مثال: «en, fr, nl»)." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:5 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:8 msgid "Compact contact list" msgstr "فهرست فشردهی آشناها" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:6 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:9 msgid "Connection managers should be used" msgstr "از مدیرهای اتصال باید استفاده شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:7 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:10 msgid "Contact list sort criterion" msgstr "معیارهای مرتبسازی فهرست آشناها" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:8 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:11 msgid "Default directory to select an avatar image from" msgstr "شاخهی پیشفرض برای انتخاب تصویر آواتار از آن" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:9 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:12 msgid "Disable popup notifications when away" msgstr "در حالت «غایب»، اطلاعیههای واشو از کار بیافتند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:10 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:13 msgid "Disable sounds when away" msgstr "در حالت «غایب»، صداها از کار بیافتند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:11 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:14 msgid "Display incoming events in the status area" msgstr "رویدادهای ورودی در منطقهی وضعیت نمایش داده شوند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:12 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:15 msgid "Display incoming events in the status area. If false, present them to the user immediately." msgstr "رویدادهای ورودی در منطقهی وضعیت نمایش داده شوند. اگر نادرست باشد، مستقیما به کاربر نمایش داده شوند." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:13 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:16 msgid "Empathy can publish the user's location" msgstr "امپاتی میتواند مکان کاربر را منتشر کند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:14 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:17 msgid "Empathy can use the GPS to guess the location" msgstr "امپاتی میتواند از مکانیاب جغرافیایی (جیپیاس) استفاده کند تا مکان کاربر را حدس بزند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:15 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:18 msgid "Empathy can use the cellular network to guess the location" msgstr "امپاتی میتواند از شبکهی سلولی برای حدس مکان استفاده کند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:16 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:19 msgid "Empathy can use the network to guess the location" msgstr "امپاتی میتواند از شبکه برای حدس مکان استفاده کند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:17 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:20 msgid "Empathy default download folder" msgstr "پوشهی پیشفرض بارگیری امپاتی" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:18 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:21 msgid "Empathy has migrated butterfly logs" msgstr "امپاتی ثبت وقایع پروانهای (butterfly) را منتقل کرده است" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:19 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:22 msgid "Empathy should auto-away when idle" msgstr "امپاتی در صورت بیکار بودن کاربر، خودکار به حالت «غایب» برود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:20 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:23 msgid "Empathy should auto-connect on startup" msgstr "امپاتی در زمان راهاندازی به طور خودکار متصل شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:21 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:24 msgid "Empathy should reduce the location's accuracy" msgstr "امپاتی دقت مکان را کاهش دهد" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:22 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:25 msgid "Empathy should use the avatar of the contact as the chat window icon" msgstr "امپاتی از آواتار برای شمایل پنجرهی گپ استفاده کند" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:23 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:26 msgid "Enable WebKit Developer Tools" msgstr "فعالسازی ابزارهای توسعهی WebKit" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:24 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:27 msgid "Enable popup notifications for new messages" msgstr "فعالسازی اطلاعیههای واشو برای پیامهای جدید" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:25 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:28 msgid "Enable spell checker" msgstr "به کار انداختن غلطیابی املایی" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:26 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:29 msgid "Hide main window" msgstr "مخفی کردن پنجرهی اصلی" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:27 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:30 msgid "Hide the main window." msgstr "مخفی کردن پنجرهی اصلی." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:28 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:31 msgid "Nick completed character" msgstr "نویسهی کامل شده لقب" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:29 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:32 msgid "Open new chats in separate windows" msgstr "گپهای جدید در پنجرهی مجزا باز شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:30 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:33 msgid "Path of the Adium theme to use" msgstr "مسیر تم Adium برای استفاده" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:31 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:34 msgid "Path of the Adium theme to use if the theme used for chat is Adium." msgstr "مسیر تم Adium برای استفاده چناچه تم مورد استفاده برای گپ Adium باشد." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:32 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:35 msgid "Play a sound for incoming messages" msgstr "هنگام دریافت پیام، صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:33 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:36 msgid "Play a sound for new conversations" msgstr "برای مکالمههای جدید صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:34 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:37 msgid "Play a sound for outgoing messages" msgstr "برای پیامهای خروجی صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:35 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:38 msgid "Play a sound when a contact logs in" msgstr "وقتی آشنایی وارد میشود صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:36 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:39 msgid "Play a sound when a contact logs out" msgstr "وقتی کاربری خارج میشود صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:37 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:40 msgid "Play a sound when we log in" msgstr "وقتی وارد میشویم صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:38 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:41 msgid "Play a sound when we log out" msgstr "وقتی خارج میشویم صدایی پخش شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:39 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:42 msgid "Pop up notifications if the chat isn't focused" msgstr "در صورتیکه پنجرهی گپ در مرکز توجه نیست، اطلاعیههای واشو انجام شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:40 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:43 msgid "Pop up notifications when a contact logs in" msgstr "وقتی آشنایی وارد میشود، اطلاعیههای واشو انجام شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:41 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:44 msgid "Pop up notifications when a contact logs out" msgstr "وقتی آشنایی خارج میشود، اطلاعیههای واشو انجام شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:42 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:45 +#| msgid "Show offline contacts" +msgid "Show Balance in contact list" +msgstr "نمایش اعتبار در فهرست آشناها" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:46 msgid "Show avatars" msgstr "نشان دادن آواتارها" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:43 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:47 msgid "Show contact list in rooms" msgstr "نمایش فهرست افراد در اتاقها" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:44 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:48 msgid "Show hint about closing the main window" msgstr "هنگام بستن پنجره، راهنمایی نشان داده شود" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:45 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:49 msgid "Show offline contacts" msgstr "نمایش آشناهای برونخط" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:46 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:50 msgid "Show protocols" msgstr "نشان دادن پروتکلها" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:47 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:51 msgid "Spell checking languages" msgstr "زبانها برای غلطیابی املایی" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:48 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:52 msgid "The default folder to save file transfers in." msgstr "پوشهی پیشفرض برای ذخیرهی پروندههای انتقالی." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:49 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:53 msgid "The last directory that an avatar image was chosen from." msgstr "آخرین شاخهای که یک آواتار از آن انتخاب شده بود." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:50 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:54 msgid "The position for the chat window side pane" msgstr "مکان قاب کناری پنجرهی گپ" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:51 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:55 msgid "The stored position (in pixels) of the chat window side pane." msgstr "مکان ذخیره شدهی (به نقطه) قاب کناری پنجرهی گپ." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:52 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:56 msgid "The theme that is used to display the conversation in chat windows." msgstr "تمی که برای نشان دادن گفتگو در پنجرهی چت استفاده میشود." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:53 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:57 +#| msgid "The theme that is used to display the conversation in chat windows." +msgid "The theme variant that is used to display the conversation in chat windows." +msgstr "گزینه تمی که برای نمایش گفتگو پنجره گپ استفاده میشود." + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:58 msgid "Use graphical smileys" msgstr "استفاده از صورتکهای گرافیکی" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:54 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:59 msgid "Use notification sounds" msgstr "به کار انداختن صداهای اخطارها" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:55 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:60 msgid "Use theme for chat rooms" msgstr "استفاده از تم برای اتاقهای گپ" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:56 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:61 msgid "Whether Empathy can publish the user's location to their contacts." msgstr "اینکه امپاتی اجازه داشته باشد، مکان کاربر را برای آشنایان منتشر کنند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:57 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:62 msgid "Whether Empathy can use the GPS to guess the location." msgstr "اینکه امپاتی اجازه داشته باشد، از مکانیاب جغرافیایی (جیپیاس) برای حدس مکان استفاده کند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:58 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:63 msgid "Whether Empathy can use the cellular network to guess the location." msgstr "اینکه امپاتی اجازه داشته باشد، از شبکهی سلولی برای حدس مکان استفاده کند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:59 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:64 msgid "Whether Empathy can use the network to guess the location." msgstr "اینکه امپاتی اجازه داشته باشد، از شبکه برای حدس مکان استفاده کند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:60 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:65 msgid "Whether Empathy has migrated butterfly logs." msgstr "اینکه امپاتی وقایع پروانهای را منتقل کرده است یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:61 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:66 msgid "Whether Empathy should automatically log into your accounts on startup." msgstr "اینکه امپاتی در هنگام راهاندازی، خودکار به حساب شما وارد شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:62 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:67 msgid "Whether Empathy should go into away mode automatically if the user is idle." msgstr "اینکه امپاتی در صورت بیکار بودن کاربر، خودکار به حالت «غایب» برود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:63 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:68 msgid "Whether Empathy should reduce the location's accuracy for privacy reasons." msgstr "اینکه امپاتی دقت مکان را به دلیل حریم خصوصی کاهش دهد یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:64 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:69 msgid "Whether Empathy should use the avatar of the contact as the chat window icon." msgstr "اینکه امپاتی از آواتار آشنا برای شمایل پنجرهی گپ استفاده کند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:65 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:70 msgid "Whether WebKit developer tools, such as the Web Inspector, should be enabled." msgstr "اینکه ابزارهای توسعهی WebKit، مانند Web Inspector، باید به کار بیافتد یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:66 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:71 msgid "Whether connectivity managers should be used to automatically disconnect/reconnect." msgstr "اینکه مدیرهای اتصال برای قطع کردنِ/اتصال مجددِ خودکار استفاده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:67 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:72 msgid "Whether to check words typed against the languages you want to check with." msgstr "اینکه کلماتی که تایپ میکنید براساس زبانهایی که میخواهید بررسی شود، یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:68 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:73 msgid "Whether to convert smileys into graphical images in conversations." msgstr "اینکه در گفتگوها، صورتکها تبدیل به تصویر گرافیکی شوند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:69 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:74 msgid "Whether to play a sound to notify of contacts logging into the network." msgstr "اینکه برای اطلاع دادن از ورود آشناها به شبکه، صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:70 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:75 msgid "Whether to play a sound to notify of contacts logging out of the network." msgstr "اینکه برای اطلاع دادن از خروج آشناها از شبکه، صدای پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:71 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:76 msgid "Whether to play a sound to notify of events." msgstr "این که برای اطلاع رویدادها صدایی پخش بشود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:72 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:77 msgid "Whether to play a sound to notify of incoming messages." msgstr "اینکه برای اطلاع از پیامهای ورودی صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:73 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:78 msgid "Whether to play a sound to notify of new conversations." msgstr "اینکه برای اطلاع از گفتگوهای جدید صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:74 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:79 msgid "Whether to play a sound to notify of outgoing messages." msgstr "اینکه برای اطلاع از پیامهای خروجی صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:75 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:80 msgid "Whether to play a sound when logging into a network." msgstr "اینکه هنگام ورود به شبکه صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:76 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:81 msgid "Whether to play a sound when logging out of a network." msgstr "اینکه هنگام خروج از شبکه صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:77 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:82 msgid "Whether to play sound notifications when away or busy." msgstr "اینکه هنگام تغییر حالت به «مشغول» یا «غایب» صدایی پخش شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:78 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:83 msgid "Whether to show a popup notification when a contact goes offline." msgstr "اینکه وقتی آشنایی برونخط میشود، یک اطلاعیهی واشو نمایش داده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:79 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:84 msgid "Whether to show a popup notification when a contact goes online." msgstr "اینکه وقتی آشنایی برخط میشود، یک اطلاعیهی واشو نمایش داده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:80 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:85 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:81 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:86 msgid "Whether to show a popup notification when receiving a new message." msgstr "اینکه هنگام دریافت یک پیام جدید، یک اطلاعیهی واشو نمایش داده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:82 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:87 +#| msgid "Whether to show protocols for contacts in the contact list." +msgid "Whether to show account balances in the contact list." +msgstr "اینکه در فهرست آشناها، اعتبار حسابها نمایش داده شود یا خیر." + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:88 msgid "Whether to show avatars for contacts in the contact list and chat windows." msgstr "اینکه آواتار برای آشناها در فهرست آشنایان و پنجرهی گپ نشان داده شوند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:83 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:89 msgid "Whether to show contacts that are offline in the contact list." msgstr "اینکه آشناهایی که برونخط هستند در فهرست آشناها دیده شوند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:84 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:90 msgid "Whether to show popup notifications when away or busy." msgstr "اینکه در حالت «غایب» یا «مشغول»، اطلاعیههای واشو نمایش داده شوند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:85 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:91 msgid "Whether to show protocols for contacts in the contact list." msgstr "اینکه در فهرست آشناها، پروتکلهای مورد استفاده برای آشناها هم دیده شوند یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:86 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:92 msgid "Whether to show the contact list in chat rooms." msgstr "اینکه فهرست آشناها در اتاقهای گپ دیده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:87 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:93 msgid "Whether to show the contact list in compact mode." msgstr "اینکه فهرست آشناها در حالت فشرده نمایش داده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:88 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:94 msgid "Whether to show the message dialog about closing the main window with the 'x' button in the title bar." msgstr "اینکه در صورت بستن برنامه توسط دکمهی «x»، محاورهی پیام در این مورد نشان داده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:89 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:95 msgid "Whether to use the theme for chat rooms." msgstr "این که از تم برای اتاقهای گپ استفاده شود یا خیر." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:90 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:96 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 the contact list by state." msgstr "کدام معیار برای مرتب کردن فهرست آشناها استفاده شود. پیش فرض بر روی مرتب کردن بر اساس نام آشنا با مقدار «name». یک مقدار «state» بر اساس حالت مرتب میکند." @@ -403,7 +431,7 @@ msgstr "مدیریت حسابهای پیامرسانی و VoIP" #. Tweak the dialog #: ../data/empathy-accounts.desktop.in.in.h:2 -#: ../src/empathy-accounts-dialog.c:2340 +#: ../src/empathy-accounts-dialog.c:2324 msgid "Messaging and VoIP Accounts" msgstr "حسابهای پیامرسانی و VoIP" @@ -423,6 +451,25 @@ msgstr "پروندهی انتخاب شده، پروندهی عادیا msgid "The selected file is empty" msgstr "پروندهی انتخاب شده خالی است" +#: ../libempathy/empathy-message.c:413 +#: ../src/empathy-call-observer.c:132 +#, c-format +msgid "Missed call from %s" +msgstr "تماس از دست رفته از %s" + +#. Translators: this is an outgoing call, e.g. 'Called Alice' +#: ../libempathy/empathy-message.c:417 +#, c-format +#| msgid "Call with %s" +msgid "Called %s" +msgstr "تماس به %s" + +#: ../libempathy/empathy-message.c:420 +#, c-format +#| msgid "Missed call from %s" +msgid "Call from %s" +msgstr "تماس از %s" + #: ../libempathy/empathy-tp-file.c:268 msgid "Socket type not supported" msgstr "نوع سوکت پشتیبانی نمیشود" @@ -452,279 +499,281 @@ msgid "The other participant is unable to transfer the file" msgstr "مشترک طرف دیگر نمیتواند پرونده را منتقل کند" #: ../libempathy/empathy-tp-file.c:405 -#: ../libempathy/empathy-utils.c:383 +#: ../libempathy/empathy-utils.c:292 msgid "Unknown reason" msgstr "دلیل ناشناخته" -#: ../libempathy/empathy-utils.c:304 +#: ../libempathy/empathy-utils.c:212 msgid "Available" msgstr "در دسترس" -#: ../libempathy/empathy-utils.c:306 +#: ../libempathy/empathy-utils.c:214 msgid "Busy" msgstr "مشغول" -#: ../libempathy/empathy-utils.c:309 +#: ../libempathy/empathy-utils.c:217 msgid "Away" msgstr "غایب" -#: ../libempathy/empathy-utils.c:311 +#: ../libempathy/empathy-utils.c:219 msgid "Invisible" msgstr "مخفی" -#: ../libempathy/empathy-utils.c:313 +#: ../libempathy/empathy-utils.c:221 msgid "Offline" msgstr "برونخط" #. translators: presence type is unknown -#: ../libempathy/empathy-utils.c:316 +#: ../libempathy/empathy-utils.c:224 msgctxt "presence" msgid "Unknown" msgstr "ناشناخته" -#: ../libempathy/empathy-utils.c:355 +#: ../libempathy/empathy-utils.c:264 msgid "No reason specified" msgstr "هیچ دلیلی مشخص نشده است" -#: ../libempathy/empathy-utils.c:357 -#: ../libempathy/empathy-utils.c:413 +#: ../libempathy/empathy-utils.c:266 +#: ../libempathy/empathy-utils.c:322 msgid "Status is set to offline" msgstr "وضعیت روی برونخط تنظیم شده است" -#: ../libempathy/empathy-utils.c:359 -#: ../libempathy/empathy-utils.c:393 +#: ../libempathy/empathy-utils.c:268 +#: ../libempathy/empathy-utils.c:302 +#: ../libempathy-gtk/empathy-call-utils.c:47 msgid "Network error" msgstr "خطای شبکه" -#: ../libempathy/empathy-utils.c:361 -#: ../libempathy/empathy-utils.c:395 +#: ../libempathy/empathy-utils.c:270 +#: ../libempathy/empathy-utils.c:304 msgid "Authentication failed" msgstr "تأیید هویت شکست خورد" -#: ../libempathy/empathy-utils.c:363 -#: ../libempathy/empathy-utils.c:397 +#: ../libempathy/empathy-utils.c:272 +#: ../libempathy/empathy-utils.c:306 msgid "Encryption error" msgstr "خطای رمزنگاری" -#: ../libempathy/empathy-utils.c:365 +#: ../libempathy/empathy-utils.c:274 msgid "Name in use" msgstr "نام استفاده شده" -#: ../libempathy/empathy-utils.c:367 -#: ../libempathy/empathy-utils.c:399 +#: ../libempathy/empathy-utils.c:276 +#: ../libempathy/empathy-utils.c:308 msgid "Certificate not provided" msgstr "گواهی فراهم نشده است" -#: ../libempathy/empathy-utils.c:369 -#: ../libempathy/empathy-utils.c:401 +#: ../libempathy/empathy-utils.c:278 +#: ../libempathy/empathy-utils.c:310 msgid "Certificate untrusted" msgstr "گواهی غیر قابل اعتماد" -#: ../libempathy/empathy-utils.c:371 -#: ../libempathy/empathy-utils.c:403 +#: ../libempathy/empathy-utils.c:280 +#: ../libempathy/empathy-utils.c:312 msgid "Certificate expired" msgstr "گواهی منقضی شده است" -#: ../libempathy/empathy-utils.c:373 -#: ../libempathy/empathy-utils.c:405 +#: ../libempathy/empathy-utils.c:282 +#: ../libempathy/empathy-utils.c:314 msgid "Certificate not activated" msgstr "گواهی فعال نشده است" -#: ../libempathy/empathy-utils.c:375 -#: ../libempathy/empathy-utils.c:407 +#: ../libempathy/empathy-utils.c:284 +#: ../libempathy/empathy-utils.c:316 msgid "Certificate hostname mismatch" msgstr "عدم تطابق گواهی در نام میزبان" -#: ../libempathy/empathy-utils.c:377 -#: ../libempathy/empathy-utils.c:409 +#: ../libempathy/empathy-utils.c:286 +#: ../libempathy/empathy-utils.c:318 msgid "Certificate fingerprint mismatch" msgstr "عدم تطابق گواهی در اثر انگشت" -#: ../libempathy/empathy-utils.c:379 -#: ../libempathy/empathy-utils.c:411 +#: ../libempathy/empathy-utils.c:288 +#: ../libempathy/empathy-utils.c:320 msgid "Certificate self-signed" msgstr "گواهی خود امضا شده" -#: ../libempathy/empathy-utils.c:381 +#: ../libempathy/empathy-utils.c:290 msgid "Certificate error" msgstr "خطای گواهی" -#: ../libempathy/empathy-utils.c:415 +#: ../libempathy/empathy-utils.c:324 msgid "Encryption is not available" msgstr "رمزنگاری در دسترس نیست" -#: ../libempathy/empathy-utils.c:417 +#: ../libempathy/empathy-utils.c:326 msgid "Certificate is invalid" msgstr "گواهی نامعتبر است" -#: ../libempathy/empathy-utils.c:419 +#: ../libempathy/empathy-utils.c:328 msgid "Connection has been refused" msgstr "اتصال رد شده است" -#: ../libempathy/empathy-utils.c:421 +#: ../libempathy/empathy-utils.c:330 msgid "Connection can't be established" msgstr "اتصال برقرار نمیشود" -#: ../libempathy/empathy-utils.c:423 +#: ../libempathy/empathy-utils.c:332 msgid "Connection has been lost" msgstr "اتصال از دست رفت" -#: ../libempathy/empathy-utils.c:425 +#: ../libempathy/empathy-utils.c:334 msgid "This resource is already connected to the server" msgstr "این منبع پیشاپیش به کارگزار متصل شده است" -#: ../libempathy/empathy-utils.c:427 +#: ../libempathy/empathy-utils.c:336 msgid "Connection has been replaced by a new connection using the same resource" msgstr "اتصال با یک اتصال جدید با استفاده از همان منبع، جایگزین شده است" -#: ../libempathy/empathy-utils.c:430 +#: ../libempathy/empathy-utils.c:339 msgid "The account already exists on the server" msgstr "حساب پیشاپیش بر روی کارگزار وجود دارد" -#: ../libempathy/empathy-utils.c:432 +#: ../libempathy/empathy-utils.c:341 msgid "Server is currently too busy to handle the connection" msgstr "کارگزار فعلا خیلی مشغول است و نمیتواند اتصال را برقرار کند" -#: ../libempathy/empathy-utils.c:434 +#: ../libempathy/empathy-utils.c:343 msgid "Certificate has been revoked" msgstr "گواهی لغو شده است" -#: ../libempathy/empathy-utils.c:436 +#: ../libempathy/empathy-utils.c:345 msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak" msgstr "گواهی از یک الگوریتم رمز ناامن استفاده میکند یا از نظر رمزنگاری ضعیف است" -#: ../libempathy/empathy-utils.c:439 +#: ../libempathy/empathy-utils.c:348 msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library" msgstr "طول گواهی کارگزار، یا عمق زنجیر گواهی کارگزار از حد محدود شده توسط کتابخانه cryptography رد میشود" -#: ../libempathy/empathy-utils.c:602 +#: ../libempathy/empathy-utils.c:509 #: ../libempathy-gtk/empathy-contact-list-store.h:73 msgid "People Nearby" msgstr "افراد دور و بر" -#: ../libempathy/empathy-utils.c:607 +#: ../libempathy/empathy-utils.c:514 msgid "Yahoo! Japan" msgstr " یاهو! ژاپن" -#: ../libempathy/empathy-utils.c:636 +#: ../libempathy/empathy-utils.c:543 msgid "Google Talk" msgstr "گوگل تاک" -#: ../libempathy/empathy-utils.c:637 +#: ../libempathy/empathy-utils.c:544 msgid "Facebook Chat" msgstr "گپ فیسبوک" -#: ../libempathy/empathy-time.c:100 +#: ../libempathy/empathy-time.c:88 #, c-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%Id ثانیه قبل" msgstr[1] "%Id ثانیه قبل" -#: ../libempathy/empathy-time.c:105 +#: ../libempathy/empathy-time.c:93 #, c-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%Id دقیقه قبل" msgstr[1] "%Id دقیقه قبل" -#: ../libempathy/empathy-time.c:110 +#: ../libempathy/empathy-time.c:98 #, c-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%Id ساعت قبل" msgstr[1] "%Id ساعت قبل" -#: ../libempathy/empathy-time.c:115 +#: ../libempathy/empathy-time.c:103 #, c-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%Id روز قبل" msgstr[1] "%Id روز قبل" -#: ../libempathy/empathy-time.c:120 +#: ../libempathy/empathy-time.c:108 #, c-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%Id هفته قبل" msgstr[1] "%Id هفته قبل" -#: ../libempathy/empathy-time.c:125 +#: ../libempathy/empathy-time.c:113 #, c-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%Id ماه قبل" msgstr[1] "%Id ماه قبل" -#: ../libempathy/empathy-time.c:130 +#: ../libempathy/empathy-time.c:136 msgid "in the future" msgstr "در آینده" -#: ../libempathy-gtk/empathy-account-chooser.c:491 -msgid "All" -msgstr "همه" +#: ../libempathy-gtk/empathy-account-chooser.c:539 +#| msgid "_Accounts" +msgid "All accounts" +msgstr "تمام حسابها" -#: ../libempathy-gtk/empathy-account-widget.c:678 -#: ../libempathy-gtk/empathy-log-window.c:643 +#: ../libempathy-gtk/empathy-account-widget.c:693 #: ../src/empathy-import-widget.c:321 msgid "Account" msgstr "حساب" -#: ../libempathy-gtk/empathy-account-widget.c:679 +#: ../libempathy-gtk/empathy-account-widget.c:694 msgid "Password" msgstr "گذرواژه" -#: ../libempathy-gtk/empathy-account-widget.c:680 +#: ../libempathy-gtk/empathy-account-widget.c:695 #: ../libempathy-gtk/empathy-irc-network-dialog.c:507 msgid "Server" msgstr "کارگزار" -#: ../libempathy-gtk/empathy-account-widget.c:681 +#: ../libempathy-gtk/empathy-account-widget.c:696 #: ../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:768 +#: ../libempathy-gtk/empathy-account-widget.c:825 #, c-format msgid "%s:" msgstr "%s:" -#: ../libempathy-gtk/empathy-account-widget.c:1151 +#: ../libempathy-gtk/empathy-account-widget.c:1166 #, 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:1172 #, c-format msgid "The account %s cannot be edited in Empathy." msgstr "حساب %s از طریق امپاتی قابل ویرایش نیست." -#: ../libempathy-gtk/empathy-account-widget.c:1177 +#: ../libempathy-gtk/empathy-account-widget.c:1192 msgid "Launch My Web Accounts" msgstr "اجرای حسابهای وب من" -#: ../libempathy-gtk/empathy-account-widget.c:1515 +#: ../libempathy-gtk/empathy-account-widget.c:1532 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:11 msgid "Username:" msgstr "نام کاربری:" -#: ../libempathy-gtk/empathy-account-widget.c:1833 +#: ../libempathy-gtk/empathy-account-widget.c:1850 msgid "A_pply" msgstr "_اعمال" -#: ../libempathy-gtk/empathy-account-widget.c:1863 +#: ../libempathy-gtk/empathy-account-widget.c:1880 msgid "L_og in" msgstr "_ورود به سیستم" -#: ../libempathy-gtk/empathy-account-widget.c:1937 +#: ../libempathy-gtk/empathy-account-widget.c:1954 msgid "This account already exists on the server" msgstr "این حساب از قبل بر روی کارگزار وجود دارد" -#: ../libempathy-gtk/empathy-account-widget.c:1940 +#: ../libempathy-gtk/empathy-account-widget.c:1957 msgid "Create a new account on the server" msgstr "ایجاد یک حساب جدید بر روی کارگزار" -#: ../libempathy-gtk/empathy-account-widget.c:2132 +#: ../libempathy-gtk/empathy-account-widget.c:2149 msgid "Ca_ncel" msgstr "_لغو" @@ -733,19 +782,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:2413 +#: ../libempathy-gtk/empathy-account-widget.c:2427 #, 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:2439 +#: ../libempathy-gtk/empathy-account-widget.c:2453 #, c-format msgid "%s Account" msgstr "حساب %s" -#: ../libempathy-gtk/empathy-account-widget.c:2443 +#: ../libempathy-gtk/empathy-account-widget.c:2457 msgid "New account" msgstr "حساب جدید" @@ -757,6 +806,7 @@ msgstr "<b>مثال:</b> MyScreenName" #: ../libempathy-gtk/empathy-account-widget-generic.ui.h:1 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:2 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:2 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:2 #: ../libempathy-gtk/empathy-account-widget-local-xmpp.ui.h:1 @@ -770,7 +820,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 "_گذرواژه:" @@ -780,7 +830,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 "به خاطر سپردن گذرواژه" @@ -790,7 +840,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" @@ -866,76 +916,80 @@ msgstr "نام کاربری (UIN) شما در 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 "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 "Options" -#: ../libempathy-gtk/empathy-account-widget-sip.c:229 +#: ../libempathy-gtk/empathy-account-widget-sip.c:230 msgid "None" msgstr "هیچکدام" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2 msgid "Character set:" msgstr "نویسهگان:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3 +msgid "Most IRC servers don't need a password, so if you're not sure, don't enter a password." +msgstr "بیشتر کارگزارهای IRC احتیاجی به گذرواژه ندارند، بنابراین چناچه مطمئن نیستید، هیچ گذرواژهای وارد نکنید." + +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4 msgid "Network" msgstr "شبکه" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5 msgid "Network:" msgstr "شبکه:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6 msgid "Nickname:" msgstr "نام مستعار:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7 msgid "Password:" msgstr "گذرواژه:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8 msgid "Quit message:" msgstr "پیغام ترک:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9 msgid "Real name:" msgstr "نام واقعی:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10 msgid "Servers" msgstr "کارگزارها" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:12 msgid "What is your IRC nickname?" msgstr "نام مستعار شما در IRC چیست؟" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:13 msgid "Which IRC network?" msgstr "کدام شبکه IRC؟" @@ -1067,58 +1121,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 "گزینههای زندهماندن" -#: ../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 "سازوکار:" -#: ../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 "نام _کاربری:" @@ -1142,28 +1201,36 @@ msgstr "_شناسهی یاهو!:" 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 "همهی پروندهها" @@ -1171,160 +1238,206 @@ msgstr "همهی پروندهها" msgid "Click to enlarge" msgstr "برای بزرگ کردن کلیک کنید" -#: ../libempathy-gtk/empathy-chat.c:652 +#: ../libempathy-gtk/empathy-call-utils.c:42 +#: ../libempathy-gtk/empathy-call-utils.c:58 +#| msgid "There was an error while creating the account." +msgid "There was an error starting the call" +msgstr "خطایی در هنگام شروع تماس بود" + +#: ../libempathy-gtk/empathy-call-utils.c:49 +msgid "The specified contact doesn't support calls" +msgstr "آشنای مشخص شده از تماس پشتیبانی نمیکند" + +#: ../libempathy-gtk/empathy-call-utils.c:51 +#| msgid "The selected contact is offline." +msgid "The specified contact is offline" +msgstr "آشنای انتخاب شده برونخط است" + +#: ../libempathy-gtk/empathy-call-utils.c:53 +#| msgid "The selected contact is offline." +msgid "The specified contact is not valid" +msgstr "آشنای انتخاب شده صحیح نیست" + +#: ../libempathy-gtk/empathy-call-utils.c:55 +#| msgid "Topic not supported on this conversation" +msgid "Emergency calls are not supported on this protocol" +msgstr "تماسهای اضطراری بر روی این پروتکل پشتیبانی نمیشوند" + +#: ../libempathy-gtk/empathy-chat.c:702 msgid "Failed to open private chat" msgstr "شکست در باز کردن گپ خصوصی" -#: ../libempathy-gtk/empathy-chat.c:717 +#: ../libempathy-gtk/empathy-chat.c:763 msgid "Topic not supported on this conversation" msgstr "در این گفتگو سرفصل پشتیبانی نمیشود" -#: ../libempathy-gtk/empathy-chat.c:723 +#: ../libempathy-gtk/empathy-chat.c:769 msgid "You are not allowed to change the topic" msgstr "شما اجازهی تغییرسرفصل را ندارید" -#: ../libempathy-gtk/empathy-chat.c:932 +#: ../libempathy-gtk/empathy-chat.c:973 +#, c-format +#| msgid "invalid contact" +msgid "“%s” is not a valid contact ID" +msgstr "شناسه آشنای «%s» صحیح نیست" + +#: ../libempathy-gtk/empathy-chat.c:1030 msgid "/clear: clear all messages from the current conversation" msgstr "/clear: تمام پیامها در گفتگوی جاری را پاک میکند" -#: ../libempathy-gtk/empathy-chat.c:935 +#: ../libempathy-gtk/empathy-chat.c:1033 msgid "/topic <topic>: set the topic of the current conversation" msgstr "/topic <topic>: بدینوسیله سرفصل گفتگو مشخص میشود" -#: ../libempathy-gtk/empathy-chat.c:938 +#: ../libempathy-gtk/empathy-chat.c:1036 msgid "/join <chat room ID>: join a new chat room" msgstr "/join <chat room ID>: پیوستن به یک اتاق گپ جدید" -#: ../libempathy-gtk/empathy-chat.c:941 +#: ../libempathy-gtk/empathy-chat.c:1039 msgid "/j <chat room ID>: join a new chat room" msgstr "/j <chat room ID>: پیوستن به یک اتاق گپ جدید" -#: ../libempathy-gtk/empathy-chat.c:946 +#: ../libempathy-gtk/empathy-chat.c:1043 msgid "/part [<chat room ID>] [<reason>]: leave the chat room, by default the current one" msgstr "/part [<chat room ID>] [<reason>]: ترک اطاق گپ، به طور پیشفرض مورد فعلی" -#: ../libempathy-gtk/empathy-chat.c:951 +#: ../libempathy-gtk/empathy-chat.c:1047 msgid "/query <contact ID> [<message>]: open a private chat" msgstr "/query <contact ID> [<message>]: باز کردن یک گپ خصوصی" -#: ../libempathy-gtk/empathy-chat.c:954 +#: ../libempathy-gtk/empathy-chat.c:1050 msgid "/msg <contact ID> <message>: open a private chat" msgstr "/msg <contact ID> <message>: باز کردن یک گپ خصوصی" -#: ../libempathy-gtk/empathy-chat.c:957 +#: ../libempathy-gtk/empathy-chat.c:1053 msgid "/nick <nickname>: change your nickname on the current server" msgstr "/nick <nickname>: تغییر لقب شما در کارگزار جاری" -#: ../libempathy-gtk/empathy-chat.c:960 +#: ../libempathy-gtk/empathy-chat.c:1056 msgid "/me <message>: send an ACTION message to the current conversation" msgstr "/me <message>: فرستادن یک پیام وضعیت به گفتگوی فعلی" -#: ../libempathy-gtk/empathy-chat.c:963 +#: ../libempathy-gtk/empathy-chat.c:1059 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 "/say <message>: فرستادن یک پیام به گفتگوی فعلی، از این میتوان برای فرستادن پیامهای خاص استفاده کرد، مثلا اگر پیامی با '/' شروع شده باشد مثلا: «/say /join is used to join a new chat room»" -#: ../libempathy-gtk/empathy-chat.c:968 +#: ../libempathy-gtk/empathy-chat.c:1064 +msgid "/whois <contact ID>: display information about a contact" +msgstr "/whois <contact ID>: نمایش اطلاعات در خصوص یک آشنا" + +#: ../libempathy-gtk/empathy-chat.c:1067 msgid "/help [<command>]: show all supported commands. If <command> is defined, show its usage." msgstr "/help [<command>]: نشان دادن تمام پیامهای پشتیبانی شده. اگر <command> مشخص شده باشد، استفادهی آن نمایش داده میشود." -#: ../libempathy-gtk/empathy-chat.c:978 +#: ../libempathy-gtk/empathy-chat.c:1077 #, c-format msgid "Usage: %s" msgstr "کاربرد: %s" -#: ../libempathy-gtk/empathy-chat.c:1017 +#: ../libempathy-gtk/empathy-chat.c:1116 msgid "Unknown command" msgstr "فرمان ناشناخته" -#: ../libempathy-gtk/empathy-chat.c:1143 +#: ../libempathy-gtk/empathy-chat.c:1242 msgid "Unknown command; see /help for the available commands" msgstr "دستور ناشناخته؛ help/ را برای دیدن دستورهای موجود ببینید" -#: ../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:1412 +#| msgid "Insufficient free space to save file" +msgid "insufficient balance to send message" +msgstr "مانده اعتبار برای ارسای پیام کافی نیست" + +#: ../libempathy-gtk/empathy-chat.c:1414 +msgid "not capable" +msgstr "قابلیت لازم را ندارد" + +#: ../libempathy-gtk/empathy-chat.c:1421 msgid "offline" msgstr "برونخط" -#: ../libempathy-gtk/empathy-chat.c:1284 +#: ../libempathy-gtk/empathy-chat.c:1424 msgid "invalid contact" msgstr "آشنای نامعتبر" -#: ../libempathy-gtk/empathy-chat.c:1287 +#: ../libempathy-gtk/empathy-chat.c:1427 msgid "permission denied" msgstr "مجوز رد شد" -#: ../libempathy-gtk/empathy-chat.c:1290 +#: ../libempathy-gtk/empathy-chat.c:1430 msgid "too long message" msgstr "پیام خیلی بلند است" -#: ../libempathy-gtk/empathy-chat.c:1293 +#: ../libempathy-gtk/empathy-chat.c:1433 msgid "not implemented" msgstr "پیادهسازی نشده است" -#: ../libempathy-gtk/empathy-chat.c:1297 +#: ../libempathy-gtk/empathy-chat.c:1437 msgid "unknown" msgstr "ناشناخته" -#: ../libempathy-gtk/empathy-chat.c:1302 +#: ../libempathy-gtk/empathy-chat.c:1443 #, c-format msgid "Error sending message '%s': %s" msgstr "خطا در فرستان پیام «%s»: %s" -#: ../libempathy-gtk/empathy-chat.c:1306 +#: ../libempathy-gtk/empathy-chat.c:1447 #, c-format msgid "Error sending message: %s" msgstr "خطا در فرستان پیام: %s" -#: ../libempathy-gtk/empathy-chat.c:1367 -#: ../src/empathy-chat-window.c:717 +#: ../libempathy-gtk/empathy-chat.c:1508 +#: ../src/empathy-chat-window.c:760 msgid "Topic:" msgstr "سرفصل:" -#: ../libempathy-gtk/empathy-chat.c:1379 +#: ../libempathy-gtk/empathy-chat.c:1520 #, c-format msgid "Topic set to: %s" msgstr "سرفصل تنظیم شد: %s" -#: ../libempathy-gtk/empathy-chat.c:1381 +#: ../libempathy-gtk/empathy-chat.c:1522 msgid "No topic defined" msgstr "هیچ سرفصلی تعریف نشده است" -#: ../libempathy-gtk/empathy-chat.c:1880 +#: ../libempathy-gtk/empathy-chat.c:2031 msgid "(No Suggestions)" msgstr "(پیشنهادی نیست)" #. translators: %s is the selected word -#: ../libempathy-gtk/empathy-chat.c:1948 +#: ../libempathy-gtk/empathy-chat.c:2099 #, 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:1985 +#: ../libempathy-gtk/empathy-chat.c:2136 #, c-format msgid "Add '%s' to %s Dictionary" msgstr "اضافهکردن «%s» به لغتنامه «%s»" -#: ../libempathy-gtk/empathy-chat.c:2042 +#: ../libempathy-gtk/empathy-chat.c:2206 msgid "Insert Smiley" msgstr "درج صورتک" #. send button -#: ../libempathy-gtk/empathy-chat.c:2060 -#: ../libempathy-gtk/empathy-ui-utils.c:1808 +#: ../libempathy-gtk/empathy-chat.c:2224 +#: ../libempathy-gtk/empathy-ui-utils.c:1757 msgid "_Send" msgstr "_ارسال" #. Spelling suggestions -#: ../libempathy-gtk/empathy-chat.c:2095 +#: ../libempathy-gtk/empathy-chat.c:2278 msgid "_Spelling Suggestions" msgstr "پیشنهادات _املایی" -#: ../libempathy-gtk/empathy-chat.c:2184 +#: ../libempathy-gtk/empathy-chat.c:2367 msgid "Failed to retrieve recent logs" msgstr "بازیابی وقایع ثبت شده، شکست خورد" -#: ../libempathy-gtk/empathy-chat.c:2295 +#: ../libempathy-gtk/empathy-chat.c:2504 #, c-format msgid "%s has disconnected" msgstr "مورد %s قطع شده است" @@ -1332,12 +1445,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:2302 +#: ../libempathy-gtk/empathy-chat.c:2511 #, c-format msgid "%1$s was kicked by %2$s" msgstr "فرد %1$s توسط %2$s شوت شد" -#: ../libempathy-gtk/empathy-chat.c:2305 +#: ../libempathy-gtk/empathy-chat.c:2514 #, c-format msgid "%s was kicked" msgstr "فرد %s شوت شد" @@ -1345,17 +1458,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:2313 +#: ../libempathy-gtk/empathy-chat.c:2522 #, c-format msgid "%1$s was banned by %2$s" msgstr "فرد %1$s توسط %2$s تحریم شد" -#: ../libempathy-gtk/empathy-chat.c:2316 +#: ../libempathy-gtk/empathy-chat.c:2525 #, c-format msgid "%s was banned" msgstr "فرد %s تحریم شد" -#: ../libempathy-gtk/empathy-chat.c:2320 +#: ../libempathy-gtk/empathy-chat.c:2529 #, c-format msgid "%s has left the room" msgstr "فرد %s از اتاق خارج شد" @@ -1365,111 +1478,124 @@ msgstr "فرد %s از اتاق خارج شد" #. * given by the user living the room. If this poses a problem, #. * please let us know. :-) #. -#: ../libempathy-gtk/empathy-chat.c:2329 +#: ../libempathy-gtk/empathy-chat.c:2538 #, c-format msgid " (%s)" msgstr " (%s)" -#: ../libempathy-gtk/empathy-chat.c:2354 +#: ../libempathy-gtk/empathy-chat.c:2563 #, c-format msgid "%s has joined the room" msgstr "فرد %s به اتاق پیوست" -#: ../libempathy-gtk/empathy-chat.c:2379 +#: ../libempathy-gtk/empathy-chat.c:2588 #, c-format msgid "%s is now known as %s" msgstr "فرد %s اکنون با %s شناخته میشود" -#: ../libempathy-gtk/empathy-chat.c:2518 -#: ../src/empathy-streamed-media-window.c:1957 -#: ../src/empathy-event-manager.c:1126 +#: ../libempathy-gtk/empathy-chat.c:2727 +#: ../src/empathy-streamed-media-window.c:1894 +#: ../src/empathy-event-manager.c:1241 +#: ../src/empathy-call-window.c:1704 msgid "Disconnected" msgstr "قطع شد" #. Add message -#: ../libempathy-gtk/empathy-chat.c:3148 +#: ../libempathy-gtk/empathy-chat.c:3374 msgid "Would you like to store this password?" msgstr "آیا مایلید این گذرواژه را ذخیره کنید؟" -#: ../libempathy-gtk/empathy-chat.c:3154 +#: ../libempathy-gtk/empathy-chat.c:3380 msgid "Remember" msgstr "به خاطر بسپار" -#: ../libempathy-gtk/empathy-chat.c:3164 +#: ../libempathy-gtk/empathy-chat.c:3390 msgid "Not now" msgstr "الان خیر" -#: ../libempathy-gtk/empathy-chat.c:3208 +#: ../libempathy-gtk/empathy-chat.c:3434 msgid "Retry" msgstr "تلاش مجدد" -#: ../libempathy-gtk/empathy-chat.c:3212 +#: ../libempathy-gtk/empathy-chat.c:3438 msgid "Wrong password; please try again:" msgstr "گذرواژه اشتباه است؛ لطفا دوباره سعی کنید:" #. Add message -#: ../libempathy-gtk/empathy-chat.c:3329 +#: ../libempathy-gtk/empathy-chat.c:3568 msgid "This room is protected by a password:" msgstr "این اتاق توسط یک گذرواژه محافظت میشود:" -#: ../libempathy-gtk/empathy-chat.c:3356 +#: ../libempathy-gtk/empathy-chat.c:3595 msgid "Join" msgstr "پیوستن" -#: ../libempathy-gtk/empathy-chat.c:3526 -#: ../src/empathy-event-manager.c:1147 +#: ../libempathy-gtk/empathy-chat.c:3797 +#: ../src/empathy-event-manager.c:1262 msgid "Connected" msgstr "متصل شد" -#: ../libempathy-gtk/empathy-chat.c:3579 -#: ../libempathy-gtk/empathy-log-window.c:650 +#: ../libempathy-gtk/empathy-chat.c:3852 msgid "Conversation" msgstr "گفتگو" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422 +#. Translators: this string is a something like +#. * "Escher Cat (SMS)" +#: ../libempathy-gtk/empathy-chat.c:3857 +#, c-format +#| msgid "%s (%s)" +msgid "%s (SMS)" +msgstr "%s (اساماس)" + +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424 msgid "Unknown or invalid identifier" msgstr "شناساگر نامعتبر و یا ناشناس است" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426 msgid "Contact blocking temporarily unavailable" msgstr "امکان مسدود کردن آشنا به صورت موقت غیرفعال است" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428 msgid "Contact blocking unavailable" msgstr "امکان مسدود کردن کاربر در دسترس نیست" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:430 msgid "Permission Denied" msgstr "مجوز رد شد" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:434 msgid "Could not block contact" msgstr "نمیتوان آشنا را مسدود کرد" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:772 msgid "Edit Blocked Contacts" msgstr "ویرایش آشناهای مسدود شده" #. 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 msgid "Account:" msgstr "حساب:" +#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:2 +#| msgid "_Blocked Contacts" +msgid "Blocked Contacts" +msgstr "آشناهای مسدود شده" + #. Copy Link Address menu item #: ../libempathy-gtk/empathy-chat-text-view.c:320 -#: ../libempathy-gtk/empathy-theme-adium.c:794 +#: ../libempathy-gtk/empathy-theme-adium.c:1417 msgid "_Copy Link Address" msgstr "_رونوشت از نشانی پیوند" #. Open Link menu item #: ../libempathy-gtk/empathy-chat-text-view.c:327 -#: ../libempathy-gtk/empathy-theme-adium.c:801 +#: ../libempathy-gtk/empathy-theme-adium.c:1424 msgid "_Open Link" msgstr "_باز کردن پیوند" @@ -1494,24 +1620,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] "_گزارش این آشنا به عنوان سوء استفادهگر" @@ -1537,122 +1663,121 @@ msgstr "گروهبندی لغو شد" msgid "Favorite People" msgstr "افراد موردپسند" -#: ../libempathy-gtk/empathy-contact-list-view.c:1987 -#: ../libempathy-gtk/empathy-individual-view.c:2343 +#: ../libempathy-gtk/empathy-contact-list-view.c:1983 +#: ../libempathy-gtk/empathy-individual-view.c:2375 #, 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:2346 +#: ../libempathy-gtk/empathy-contact-list-view.c:1985 +#: ../libempathy-gtk/empathy-individual-view.c:2378 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:2401 -#: ../libempathy-gtk/empathy-individual-view.c:2594 -#: ../src/empathy-accounts-dialog.ui.h:7 +#: ../libempathy-gtk/empathy-contact-list-view.c:2034 +#: ../libempathy-gtk/empathy-contact-list-view.c:2111 +#: ../libempathy-gtk/empathy-individual-view.c:2433 +#: ../libempathy-gtk/empathy-individual-view.c:2636 msgid "_Remove" msgstr "_حذف" -#: ../libempathy-gtk/empathy-contact-list-view.c:2068 -#: ../libempathy-gtk/empathy-individual-view.c:2465 +#: ../libempathy-gtk/empathy-contact-list-view.c:2064 +#: ../libempathy-gtk/empathy-individual-view.c:2500 #, 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:2486 +#: ../libempathy-gtk/empathy-contact-list-view.c:2066 +#: ../libempathy-gtk/empathy-individual-view.c:2521 msgid "Removing contact" msgstr "در حال حذف آشنا" -#: ../libempathy-gtk/empathy-contact-menu.c:219 -#: ../src/empathy-main-window.ui.h:13 +#: ../libempathy-gtk/empathy-contact-menu.c:220 +#: ../src/empathy-main-window.ui.h:14 msgid "_Add Contact…" msgstr "ا_فزودن آشنا..." -#: ../libempathy-gtk/empathy-contact-menu.c:299 +#: ../libempathy-gtk/empathy-contact-menu.c:300 msgid "_Block Contact" msgstr "_مسدود کردن آشنا" -#: ../libempathy-gtk/empathy-contact-menu.c:328 -#: ../libempathy-gtk/empathy-individual-menu.c:517 -#: ../src/empathy-main-window.ui.h:15 +#: ../libempathy-gtk/empathy-contact-menu.c:329 +#: ../libempathy-gtk/empathy-individual-menu.c:548 +#: ../src/empathy-main-window.ui.h:16 msgid "_Chat" msgstr "_گپ" -#: ../libempathy-gtk/empathy-contact-menu.c:359 -#: ../libempathy-gtk/empathy-individual-menu.c:560 +#: ../libempathy-gtk/empathy-contact-menu.c:361 +#: ../libempathy-gtk/empathy-individual-menu.c:639 msgctxt "menu item" msgid "_Audio Call" msgstr "تماس _صوتی" -#: ../libempathy-gtk/empathy-contact-menu.c:390 -#: ../libempathy-gtk/empathy-individual-menu.c:602 +#: ../libempathy-gtk/empathy-contact-menu.c:394 +#: ../libempathy-gtk/empathy-individual-menu.c:684 msgctxt "menu item" msgid "_Video Call" msgstr "تماس _تصویری" -#: ../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:440 +#: ../libempathy-gtk/empathy-individual-menu.c:737 +#: ../src/empathy-main-window.ui.h:27 msgid "_Previous Conversations" msgstr "گفتگوی _پیشین" -#: ../libempathy-gtk/empathy-contact-menu.c:458 -#: ../libempathy-gtk/empathy-individual-menu.c:686 +#: ../libempathy-gtk/empathy-contact-menu.c:462 +#: ../libempathy-gtk/empathy-individual-menu.c:778 msgid "Send File" msgstr "ارسال پرونده" -#: ../libempathy-gtk/empathy-contact-menu.c:481 -#: ../libempathy-gtk/empathy-individual-menu.c:728 +#: ../libempathy-gtk/empathy-contact-menu.c:485 +#: ../libempathy-gtk/empathy-individual-menu.c:820 msgid "Share My Desktop" msgstr "میزکارم به اشتراک گذاشته شود" -#: ../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:525 +#: ../libempathy-gtk/empathy-contact-widget.c:1890 +#: ../libempathy-gtk/empathy-individual-menu.c:855 +#: ../libempathy-gtk/empathy-individual-widget.c:1386 msgid "Favorite" msgstr "علاقهمندیها" -#: ../libempathy-gtk/empathy-contact-menu.c:550 -#: ../libempathy-gtk/empathy-individual-menu.c:791 +#: ../libempathy-gtk/empathy-contact-menu.c:554 +#: ../libempathy-gtk/empathy-individual-menu.c:883 msgid "Infor_mation" msgstr "_اطلاعات" -#: ../libempathy-gtk/empathy-contact-menu.c:596 +#: ../libempathy-gtk/empathy-contact-menu.c:600 msgctxt "Edit contact (contextual menu)" msgid "_Edit" msgstr "_ویرایش" -#: ../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:654 +#: ../libempathy-gtk/empathy-individual-menu.c:1070 +#: ../src/empathy-chat-window.c:1010 msgid "Inviting you to this room" msgstr "در حال دعوت شما به این اتاق" -#: ../libempathy-gtk/empathy-contact-menu.c:681 -#: ../libempathy-gtk/empathy-individual-menu.c:1019 +#: ../libempathy-gtk/empathy-contact-menu.c:685 +#: ../libempathy-gtk/empathy-individual-menu.c:1116 msgid "_Invite to Chat Room" msgstr "_دعوت به اتاق گپ" #. Title -#: ../libempathy-gtk/empathy-contact-search-dialog.c:513 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:514 msgid "Search contacts" msgstr "جستجو آشناها" -#: ../libempathy-gtk/empathy-contact-search-dialog.c:543 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:544 msgid "Search: " msgstr "جستجو: " -#: ../libempathy-gtk/empathy-contact-search-dialog.c:601 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:602 msgid "_Add Contact" msgstr "ا_فزودن آشنا" -#: ../libempathy-gtk/empathy-contact-search-dialog.c:619 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:620 msgid "No contacts found" msgstr "هیچ آشنایی پیدا نشد" @@ -1660,178 +1785,205 @@ 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 Name:" +msgid "Last seen:" +msgstr "آخرین حضور:" + +#: ../libempathy-gtk/empathy-contact-widget.c:348 +#| msgid "Connected" +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 "Quit message:" +msgid "Away message:" +msgstr "پیغام ترک:" + +#: ../libempathy-gtk/empathy-contact-widget.c:606 +#| msgid "Ca_ncel" +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:871 -#: ../libempathy-gtk/empathy-contact-widget.c:886 -#: ../libempathy-gtk/empathy-individual-widget.c:616 -#: ../libempathy-gtk/empathy-individual-widget.c:631 -#: ../src/empathy-preferences.ui.h:12 +#: ../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:16 msgid "Location" msgstr "مکان" #. 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 "%Od %B، سال %Oy در %OH:%OM 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 "ذخیرهی آواتار" -#: ../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 "ذخیرهی آواتار ممکن نیست" @@ -1841,7 +1993,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 "نام مستعار:" @@ -1861,7 +2013,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 "شناسه:" @@ -1878,87 +2030,93 @@ 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." 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:1436 +#: ../libempathy-gtk/empathy-groups-widget.c:409 +#: ../src/empathy-main-window.c:1835 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:138 #, 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:594 +#: ../libempathy-gtk/empathy-new-message-dialog.c:248 +msgid "_SMS" +msgstr "_اساماس" + +#: ../libempathy-gtk/empathy-individual-menu.c:931 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:865 +#: ../libempathy-gtk/empathy-individual-menu.c:957 msgctxt "Link individual (contextual menu)" msgid "_Link Contacts…" msgstr "_پیوند آشناها..." -#: ../libempathy-gtk/empathy-individual-view.c:2308 +#: ../libempathy-gtk/empathy-individual-view.c:2340 msgid "Delete and _Block" msgstr "حذف و _مسدود کن" -#: ../libempathy-gtk/empathy-individual-view.c:2474 +#: ../libempathy-gtk/empathy-individual-view.c:2509 #, 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 "آیا واقعا میخواهید آشنای پیوند داده شده «%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" @@ -2036,65 +2194,218 @@ msgctxt "Unlink individual (button)" msgid "_Unlink" msgstr "_لغو پیوند" -#: ../libempathy-gtk/empathy-log-window.c:660 -msgid "Date" -msgstr "تاریخ" +#: ../libempathy-gtk/empathy-log-window.c:458 +msgid "History" +msgstr "تاریخچه" + +#: ../libempathy-gtk/empathy-log-window.c:510 +msgid "Show" +msgstr "نمایش" + +#: ../libempathy-gtk/empathy-log-window.c:532 +msgid "Search" +msgstr "جستجو" -#. Tab Label +#: ../libempathy-gtk/empathy-log-window.c:946 +#, c-format +#| msgid "Call with %s" +msgid "Chat in %s" +msgstr "گپ در %s" + +#: ../libempathy-gtk/empathy-log-window.c:948 +#, c-format +#| msgid "Call with %s" +msgid "Chat with %s" +msgstr "گپ با %s" + +#: ../libempathy-gtk/empathy-log-window.c:998 +#: ../libempathy-gtk/empathy-log-window.c:1176 +#| msgid "%A %B %d %Y" +msgctxt "A date with the time" +msgid "%A, %e %B %Y %X" +msgstr "%A, %e %B %Y %X" + +#. Translators: this is an emote: '* Danielle waves' +#: ../libempathy-gtk/empathy-log-window.c:1118 +#, c-format +msgid "<i>* %s %s</i>" +msgstr "<i>* %s %s</i>" + +#. Translators: this is a message: 'Danielle: hello' +#. * The string in bold is the sender's name +#: ../libempathy-gtk/empathy-log-window.c:1124 +#, c-format +msgid "<b>%s:</b> %s" +msgstr "<b>%s:</b> %s" + +#: ../libempathy-gtk/empathy-log-window.c:1195 +#: ../libempathy-gtk/empathy-log-window.c:1197 +#: ../src/empathy-ft-manager.c:1026 +msgid "%" +msgstr "٪" + +#: ../libempathy-gtk/empathy-log-window.c:1204 +#, c-format +msgid "Call took %s, ended at %s" +msgstr "تماس در %s گرفته شد، در %s پایان یافت" + +#: ../libempathy-gtk/empathy-log-window.c:1536 +msgid "Today" +msgstr "امروز" + +#: ../libempathy-gtk/empathy-log-window.c:1540 +#| msgid "Western" +msgid "Yesterday" +msgstr "دیروز" + +#: ../libempathy-gtk/empathy-log-window.c:1556 +#| msgid "%A %B %d %Y" +msgctxt "A date such as '23 May 2010', %e is the day, %B the month and %Y the year" +msgid "%e %B %Y" +msgstr "%e %B %Y" + +#: ../libempathy-gtk/empathy-log-window.c:1637 +#: ../libempathy-gtk/empathy-log-window.c:3203 +msgid "Anytime" +msgstr "هرزمانی" + +#: ../libempathy-gtk/empathy-log-window.c:1717 +#: ../libempathy-gtk/empathy-log-window.c:2154 +#| msgid "None" +msgid "Anyone" +msgstr "هرکسی" + +#: ../libempathy-gtk/empathy-log-window.c:2451 +msgid "Who" +msgstr "چه کسی" + +#: ../libempathy-gtk/empathy-log-window.c:2655 +msgid "When" +msgstr "چه زمانی" + +#: ../libempathy-gtk/empathy-log-window.c:2771 +msgid "Anything" +msgstr "هرچیزی" + +#: ../libempathy-gtk/empathy-log-window.c:2773 +#| msgid "Set status" +msgid "Text chats" +msgstr "گپهای متنی" + +#: ../libempathy-gtk/empathy-log-window.c:2775 +#: ../src/empathy-preferences.ui.h:4 +#| msgid "Call" +msgid "Calls" +msgstr "تماسها" + +#: ../libempathy-gtk/empathy-log-window.c:2780 +#| msgid "Incoming call" +msgid "Incoming calls" +msgstr "تماسهای ورودی" + +#: ../libempathy-gtk/empathy-log-window.c:2781 +#| msgid "Outgoing voice call" +msgid "Outgoing calls" +msgstr "تماس خروجی" + +#: ../libempathy-gtk/empathy-log-window.c:2782 +#| msgid "Missed call from %s" +msgid "Missed calls" +msgstr "تماسهای از دست رفته" + +#: ../libempathy-gtk/empathy-log-window.c:2804 +#| msgid "Chat" +msgid "What" +msgstr "کدام" + +#: ../libempathy-gtk/empathy-log-window.c:3506 +#| msgid "Are you sure you want to block '%s' from contacting you again?" +msgid "Are you sure you want to delete all logs of previous conversations?" +msgstr "آیا مطمئنید که میخواهید تمام وقایع ثبت شده گفتگوهای قبلی را حذف کنید؟" + +#: ../libempathy-gtk/empathy-log-window.c:3510 +#| msgid "C_lear" +msgid "Clear All" +msgstr "پاک کردن همه" + +#: ../libempathy-gtk/empathy-log-window.c:3517 +msgid "Delete from:" +msgstr "پاک کردن از:" + +#: ../libempathy-gtk/empathy-log-window.ui.h:1 +msgid "<span size=\"x-large\">Loading...</span>" +msgstr "<span size=\"x-large\">بارگیری...</span>" + +#. translators: Call is a noun. This string is used in the window +#. * title #: ../libempathy-gtk/empathy-log-window.ui.h:2 -msgid "Conversations" -msgstr "مکالمات" +#: ../src/empathy-streamed-media-window.c:1299 +#: ../src/empathy-call-window.ui.h:2 +msgid "Call" +msgstr "تماس" #: ../libempathy-gtk/empathy-log-window.ui.h:3 -#: ../libempathy-gtk/empathy-search-bar.ui.h:1 -msgid "Find Next" -msgstr "یافتن بعدی" +#: ../src/empathy-chat-window.ui.h:3 +msgid "Chat" +msgstr "گپ" #: ../libempathy-gtk/empathy-log-window.ui.h:4 -#: ../libempathy-gtk/empathy-search-bar.ui.h:2 -msgid "Find Previous" -msgstr "یافتن قبلی" +msgid "Delete All History..." +msgstr "پاک کردن تمام تاریخچه..." #: ../libempathy-gtk/empathy-log-window.ui.h:5 -msgid "Previous Conversations" -msgstr "مکالمههای قبلی" +#| msgid "Provide" +msgid "Profile" +msgstr "مجموعه تنظیمات" + +#: ../libempathy-gtk/empathy-log-window.ui.h:6 +#: ../src/empathy-call-window.ui.h:21 +#: ../src/empathy-streamed-media-window.ui.h:20 +msgid "Video" +msgstr "ویدئو" -#. Tab Label #: ../libempathy-gtk/empathy-log-window.ui.h:7 -msgid "Search" -msgstr "جستجو" +#: ../src/empathy-call-window.ui.h:26 +#: ../src/empathy-chat-window.ui.h:12 +#: ../src/empathy-main-window.ui.h:20 +msgid "_Edit" +msgstr "_ویرایش" + +#: ../libempathy-gtk/empathy-log-window.ui.h:8 +#| msgid "File" +msgid "_File" +msgstr "_پرونده" -#. Searching *for* something #: ../libempathy-gtk/empathy-log-window.ui.h:9 -msgid "_For:" -msgstr "_برای:" +msgid "page 2" +msgstr "صفحه ۲" #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:2 msgid "Contact ID:" msgstr "شناسهی آشنا:" #. add chat button -#: ../libempathy-gtk/empathy-new-message-dialog.c:171 +#: ../libempathy-gtk/empathy-new-message-dialog.c:258 msgid "C_hat" msgstr "_گپ" #. Tweak the dialog -#: ../libempathy-gtk/empathy-new-message-dialog.c:181 +#: ../libempathy-gtk/empathy-new-message-dialog.c:277 msgid "New Conversation" msgstr "گفتگوی جدید" #. add video toggle -#: ../libempathy-gtk/empathy-new-call-dialog.c:253 +#: ../libempathy-gtk/empathy-new-call-dialog.c:231 msgid "Send _Video" msgstr "فرستادن _ویدئو" #. add chat button -#: ../libempathy-gtk/empathy-new-call-dialog.c:261 +#: ../libempathy-gtk/empathy-new-call-dialog.c:242 msgid "C_all" msgstr "_تماس" #. Tweak the dialog -#: ../libempathy-gtk/empathy-new-call-dialog.c:271 +#: ../libempathy-gtk/empathy-new-call-dialog.c:252 msgid "New Call" msgstr "تماس جدید" @@ -2113,34 +2424,34 @@ msgstr "" #. COL_DISPLAY_MARKUP #. COL_STATUS_CUSTOMISABLE #. COL_TYPE -#: ../libempathy-gtk/empathy-presence-chooser.c:170 -#: ../libempathy-gtk/empathy-presence-chooser.c:206 +#: ../libempathy-gtk/empathy-presence-chooser.c:167 +#: ../libempathy-gtk/empathy-presence-chooser.c:203 msgid "Custom Message…" msgstr "پیام سفارشی..." -#: ../libempathy-gtk/empathy-presence-chooser.c:223 -#: ../libempathy-gtk/empathy-presence-chooser.c:225 +#: ../libempathy-gtk/empathy-presence-chooser.c:220 +#: ../libempathy-gtk/empathy-presence-chooser.c:222 msgid "Edit Custom Messages…" msgstr "ویرایش پیامهای سفارشی..." -#: ../libempathy-gtk/empathy-presence-chooser.c:348 +#: ../libempathy-gtk/empathy-presence-chooser.c:345 msgid "Click to remove this status as a favorite" msgstr "برای برداشتن این مورد از فهرست علاقهمندیها، کلیک کنید" -#: ../libempathy-gtk/empathy-presence-chooser.c:357 +#: ../libempathy-gtk/empathy-presence-chooser.c:354 msgid "Click to make this status a favorite" msgstr "برای افزودن این وضعیت به علاقهمندیها کلیک کنید" -#: ../libempathy-gtk/empathy-presence-chooser.c:391 +#: ../libempathy-gtk/empathy-presence-chooser.c:388 msgid "Set status" msgstr "تنظیم وضعیت" -#: ../libempathy-gtk/empathy-presence-chooser.c:946 +#: ../libempathy-gtk/empathy-presence-chooser.c:943 msgid "Set your presence and current status" msgstr "حضور و وضعیت جاری خود را تنظیم کنید" #. Custom messages -#: ../libempathy-gtk/empathy-presence-chooser.c:1134 +#: ../libempathy-gtk/empathy-presence-chooser.c:1131 msgid "Custom messages…" msgstr "پیامهای دلخواه..." @@ -2153,6 +2464,14 @@ msgstr "پیامهای دلخواه..." msgid "New %s account" msgstr "حساب جدید %s" +#: ../libempathy-gtk/empathy-search-bar.ui.h:1 +msgid "Find Next" +msgstr "یافتن بعدی" + +#: ../libempathy-gtk/empathy-search-bar.ui.h:2 +msgid "Find Previous" +msgstr "یافتن قبلی" + #: ../libempathy-gtk/empathy-search-bar.ui.h:3 msgid "Find:" msgstr "یافتن:" @@ -2205,35 +2524,41 @@ msgstr "تماس صوتی خروجی" msgid "Voice call ended" msgstr "تماس صوتی پایان یافت" -#: ../libempathy-gtk/empathy-status-preset-dialog.c:364 -msgid "Enter Custom Message" -msgstr "پیام سفارشی را وارد کنید" - -#: ../libempathy-gtk/empathy-status-preset-dialog.c:523 +#: ../libempathy-gtk/empathy-status-preset-dialog.c:296 msgid "Edit Custom Messages" msgstr "پیامهای سفارشی را ویرایش کنید" #: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:1 -msgid "Save _New Status Message" -msgstr "ذخیره پیام وضعیت _جدید" +#: ../src/empathy-accounts-dialog.ui.h:5 +#: ../src/empathy-chatrooms-window.ui.h:3 +#| msgid "_Remove" +msgid "Remove" +msgstr "حذف" + +#: ../libempathy-gtk/empathy-theme-adium.c:1121 +#, c-format +#| msgid "Message received" +msgid "Message edited at %s" +msgstr "پیام ویرایش شده در %s" -#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:2 -msgid "Saved Status Messages" -msgstr "پیامهای وضعیت ذخیره شده" +#: ../libempathy-gtk/empathy-theme-adium.c:1943 +#| msgid "N_ormal Size" +msgid "Normal" +msgstr "معمولی" -#: ../libempathy-gtk/empathy-theme-manager.c:67 +#: ../libempathy-gtk/empathy-theme-manager.c:75 msgid "Classic" msgstr "کلاسیک" -#: ../libempathy-gtk/empathy-theme-manager.c:68 +#: ../libempathy-gtk/empathy-theme-manager.c:76 msgid "Simple" msgstr "ساده" -#: ../libempathy-gtk/empathy-theme-manager.c:69 +#: ../libempathy-gtk/empathy-theme-manager.c:77 msgid "Clean" msgstr "تمیز" -#: ../libempathy-gtk/empathy-theme-manager.c:70 +#: ../libempathy-gtk/empathy-theme-manager.c:78 msgid "Blue" msgstr "آبی" @@ -2307,24 +2632,24 @@ 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:1749 msgid "Select a file" msgstr "یک پرونده انتخاب کنید" -#: ../libempathy-gtk/empathy-ui-utils.c:1872 +#: ../libempathy-gtk/empathy-ui-utils.c:1821 msgid "Insufficient free space to save file" msgstr "فضای آزاد ناکافی برای ذخیره پرونده" -#: ../libempathy-gtk/empathy-ui-utils.c:1880 +#: ../libempathy-gtk/empathy-ui-utils.c:1829 #, c-format msgid "%s of free space are required to save this file, but only %s is available. Please choose another location." msgstr "میزان %s فضای آزاد برای ذخیره کردن این پرونده لازم است، اما فقط %s موجود است. لطفا یک محل دیگر را انتخاب کنید." -#: ../libempathy-gtk/empathy-ui-utils.c:1924 +#: ../libempathy-gtk/empathy-ui-utils.c:1873 #, c-format msgid "Incoming file from %s" msgstr "در حال دریافت پرونده از %s" @@ -2512,23 +2837,23 @@ msgstr "پیغام خطایی وجود ندارد" msgid "Instant Message (Empathy)" msgstr "پیام فوری (امپاتی)" -#: ../src/empathy.c:308 +#: ../src/empathy.c:354 msgid "Don't connect on startup" msgstr "امپاتی هنگام راهاندازی اولیه متصل نشود" -#: ../src/empathy.c:312 +#: ../src/empathy.c:358 msgid "Don't display the contact list or any other dialogs on startup" msgstr "در هنگام راهاندازی فهرست آشناها یا هر محاورهی دیگری را نشان نده" -#: ../src/empathy.c:320 +#: ../src/empathy.c:373 msgid "- Empathy IM Client" msgstr "- کارگیر پیام رسانی اینترنتی امپاتی" -#: ../src/empathy.c:499 +#: ../src/empathy.c:560 msgid "Error contacting the Account Manager" msgstr "خطا در برقراری ارتباط با مدیریت حساب" -#: ../src/empathy.c:501 +#: ../src/empathy.c:562 #, c-format msgid "" "There was an error while trying to connect to the Telepathy Account Manager. The error was:\n" @@ -2644,8 +2969,8 @@ msgid "Select the accounts you want to import:" msgstr "حسابهایی که میخواهید وارد کنید را انتخاب کنید:" #: ../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 "بله" @@ -2704,7 +3029,8 @@ msgid "Your new account has not been saved yet." msgstr "حساب جدید شما هنوز ذخیره نشده است." #: ../src/empathy-accounts-dialog.c:345 -#: ../src/empathy-streamed-media-window.c:809 +#: ../src/empathy-streamed-media-window.c:754 +#: ../src/empathy-call-window.c:653 msgid "Connecting…" msgstr "در حال اتصال..." @@ -2747,7 +3073,7 @@ msgstr "آیا میخواهید %s را از رایانهتان حذف ک msgid "This will not remove your account on the server." msgstr "این کار حساب شما بر روی کارگزار را پاک نخواهد کرد." -#: ../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?" @@ -2756,15 +3082,15 @@ msgstr "" "خواهد گرفت. آیا مطمئنید که میخواهید ادامه دهید؟" #. Menu items: to enabled/disable the account -#: ../src/empathy-accounts-dialog.c:1652 +#: ../src/empathy-accounts-dialog.c:1643 msgid "_Enable" msgstr "_فعالکردن" -#: ../src/empathy-accounts-dialog.c:1653 +#: ../src/empathy-accounts-dialog.c:1644 msgid "_Disable" msgstr "_غیرفعالکردن" -#: ../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?" @@ -2773,34 +3099,35 @@ msgstr "" "خواهد گرفت. آیا مطمئنید که میخواهید ادامه دهید؟" #: ../src/empathy-accounts-dialog.ui.h:1 +#| msgid "_Add…" +msgid "Add…" +msgstr "افزودن..." + +#: ../src/empathy-accounts-dialog.ui.h:2 msgid "Loading account information" msgstr "بارگیری اطلاعات حساب" -#: ../src/empathy-accounts-dialog.ui.h:2 +#: ../src/empathy-accounts-dialog.ui.h:3 msgid "No protocol installed" msgstr "قراردادی نصب نشده است" -#: ../src/empathy-accounts-dialog.ui.h:3 +#: ../src/empathy-accounts-dialog.ui.h:4 msgid "Protocol:" msgstr "قرارداد:" -#: ../src/empathy-accounts-dialog.ui.h:4 +#: ../src/empathy-accounts-dialog.ui.h:6 msgid "To add a new account, you first have to install a backend for each protocol you want to use." msgstr "برای افزودن حساب جدید، اول از همه باید پسانهی لازم برای هر قراردادی را که میخواهید استفاده کنید، نصب کنید." -#: ../src/empathy-accounts-dialog.ui.h:5 -msgid "_Add…" -msgstr "_افزودن..." - -#: ../src/empathy-accounts-dialog.ui.h:6 +#: ../src/empathy-accounts-dialog.ui.h:7 msgid "_Import…" msgstr "_وارد کردن..." -#: ../src/empathy-auth-client.c:250 +#: ../src/empathy-auth-client.c:249 msgid " - Empathy authentication client" msgstr " - کارگیر تصدیق هویت امپاتی" -#: ../src/empathy-auth-client.c:266 +#: ../src/empathy-auth-client.c:265 msgid "Empathy authentication client" msgstr "کارگیر تصدیق هویت امپاتی" @@ -2809,291 +3136,347 @@ msgid "People nearby" msgstr "افراد دور و بر" #: ../src/empathy-av.c:118 +#: ../src/empathy-call.c:124 msgid "- Empathy Audio/Video Client" msgstr "- کارگیر صوتی/تصویری امپاتی" #: ../src/empathy-av.c:134 +#: ../src/empathy-call.c:145 msgid "Empathy Audio/Video Client" msgstr "کارگیر صوتی/تصویری امپاتی" -#: ../src/empathy-streamed-media-window.c:479 +#: ../src/empathy-streamed-media-window.c:431 msgid "Contrast" msgstr "سایه روشن تصویر" -#: ../src/empathy-streamed-media-window.c:482 +#: ../src/empathy-streamed-media-window.c:434 msgid "Brightness" msgstr "روشنی" -#: ../src/empathy-streamed-media-window.c:485 +#: ../src/empathy-streamed-media-window.c:437 msgid "Gamma" msgstr "گاما" -#: ../src/empathy-streamed-media-window.c:590 +#: ../src/empathy-streamed-media-window.c:542 msgid "Volume" msgstr "بلندی صدا" -#: ../src/empathy-streamed-media-window.c:1166 +#: ../src/empathy-streamed-media-window.c:1110 msgid "_Sidebar" msgstr "نوار _جانبی" -#: ../src/empathy-streamed-media-window.c:1186 +#: ../src/empathy-streamed-media-window.c:1130 msgid "Audio input" msgstr "ورودی صدا" -#: ../src/empathy-streamed-media-window.c:1190 +#: ../src/empathy-streamed-media-window.c:1134 msgid "Video input" msgstr "ورودی ویدئو" -#: ../src/empathy-streamed-media-window.c:1194 +#: ../src/empathy-streamed-media-window.c:1140 msgid "Dialpad" msgstr "شمارهگیر" -#: ../src/empathy-streamed-media-window.c:1205 +#: ../src/empathy-streamed-media-window.c:1151 msgid "Details" msgstr "جزئیات" #. translators: Call is a noun and %s is the contact name. This string #. * is used in the window title -#: ../src/empathy-streamed-media-window.c:1274 +#: ../src/empathy-streamed-media-window.c:1220 +#: ../src/empathy-call-window.c:1043 #, c-format msgid "Call with %s" msgstr "تماس با %s" -#. translators: Call is a noun. This string is used in the window -#. * title -#: ../src/empathy-streamed-media-window.c:1353 -msgid "Call" -msgstr "تماس" - -#: ../src/empathy-streamed-media-window.c:1507 +#: ../src/empathy-streamed-media-window.c:1453 +#: ../src/empathy-call-window.c:1287 msgid "The IP address as seen by the machine" msgstr "نشانی IP همانطور که توسط ماشین دیده میشود" -#: ../src/empathy-streamed-media-window.c:1509 +#: ../src/empathy-streamed-media-window.c:1455 +#: ../src/empathy-call-window.c:1289 msgid "The IP address as seen by a server on the Internet" msgstr "آدرس IP همانطور که توسط کارگزار روی اینترنت دیده میشود" -#: ../src/empathy-streamed-media-window.c:1511 +#: ../src/empathy-streamed-media-window.c:1457 +#: ../src/empathy-call-window.c:1291 msgid "The IP address of the peer as seen by the other side" msgstr "آدرس IP مربوط به peer همانطور که توسط طرف مقابل دیده میشود" -#: ../src/empathy-streamed-media-window.c:1513 +#: ../src/empathy-streamed-media-window.c:1459 +#: ../src/empathy-call-window.c:1293 msgid "The IP address of a relay server" msgstr "آدرس IP مربوط به سرور بازپخش" -#: ../src/empathy-streamed-media-window.c:1515 +#: ../src/empathy-streamed-media-window.c:1461 +#: ../src/empathy-call-window.c:1295 msgid "The IP address of the multicast group" msgstr "آدرس IP مربوط به گروه چندگانه" -#: ../src/empathy-streamed-media-window.c:1906 +#: ../src/empathy-streamed-media-window.c:1843 msgctxt "encoding video codec" msgid "Unknown" msgstr "ناشناخته" -#: ../src/empathy-streamed-media-window.c:1909 +#: ../src/empathy-streamed-media-window.c:1846 msgctxt "encoding audio codec" msgid "Unknown" msgstr "ناشناخته" -#: ../src/empathy-streamed-media-window.c:1912 +#: ../src/empathy-streamed-media-window.c:1849 msgctxt "decoding video codec" msgid "Unknown" msgstr "ناشناخته" -#: ../src/empathy-streamed-media-window.c:1915 +#: ../src/empathy-streamed-media-window.c:1852 msgctxt "decoding audio codec" msgid "Unknown" msgstr "ناشناخته" #. Translators: number of minutes:seconds the caller has been connected -#: ../src/empathy-streamed-media-window.c:2274 +#: ../src/empathy-streamed-media-window.c:2144 #, c-format msgid "Connected — %d:%02dm" msgstr "متصل شد — %Id: %I02dm" -#: ../src/empathy-streamed-media-window.c:2335 +#: ../src/empathy-streamed-media-window.c:2205 +#: ../src/empathy-call-window.c:2023 msgid "Technical Details" msgstr "جزئیات فنی" -#: ../src/empathy-streamed-media-window.c:2373 +#: ../src/empathy-streamed-media-window.c:2243 +#: ../src/empathy-call-window.c:2061 #, c-format msgid "%s's software does not understand any of the audio formats supported by your computer" msgstr "نرمافزار %s هیچکدام از قالبهای صوتی پشتیبانی شده توسط رایانهی شما را تشخیص نمیدهد" -#: ../src/empathy-streamed-media-window.c:2378 +#: ../src/empathy-streamed-media-window.c:2248 +#: ../src/empathy-call-window.c:2066 #, c-format msgid "%s's software does not understand any of the video formats supported by your computer" msgstr "نرمافزار %s هیچکدام از قالبهای ویدئویی پشتیبانی شده توسط رایانهی شما را تشخیص نمیدهد" -#: ../src/empathy-streamed-media-window.c:2384 +#: ../src/empathy-streamed-media-window.c:2254 +#: ../src/empathy-call-window.c:2072 #, c-format msgid "Can't establish a connection to %s. One of you might be on a network that does not allow direct connections." msgstr "نمیتوان ارتباطی به %s برقرار کرد. ممکن است یکی از شما در شبکهای باشد که اجازهی اتصال مستقیم را نمیدهد." -#: ../src/empathy-streamed-media-window.c:2390 +#: ../src/empathy-streamed-media-window.c:2260 +#: ../src/empathy-call-window.c:2078 msgid "There was a failure on the network" msgstr "یک خرابی در شبکه بوجود آمده بود" -#: ../src/empathy-streamed-media-window.c:2394 +#: ../src/empathy-streamed-media-window.c:2264 +#: ../src/empathy-call-window.c:2082 msgid "The audio formats necessary for this call are not installed on your computer" msgstr "قالبهای صوتی لازم برای برقراری این تماس روی رایانهی شما نصب نشدهاند" -#: ../src/empathy-streamed-media-window.c:2397 +#: ../src/empathy-streamed-media-window.c:2267 +#: ../src/empathy-call-window.c:2085 msgid "The video formats necessary for this call are not installed on your computer" msgstr "قالبهای ویدئویی لازم برای برقراری این تماس روی رایانهی شما نصب نشدهاند" -#: ../src/empathy-streamed-media-window.c:2407 +#: ../src/empathy-streamed-media-window.c:2277 +#: ../src/empathy-call-window.c:2097 #, c-format msgid "Something unexpected happened in a Telepathy component. Please <a href=\"%s\">report this bug</a> and attach logs gathered from the 'Debug' window in the Help menu." msgstr "اتفاقی ناخواسته در یک مؤلفهی تلهپاتی رخ داد. لطفا <a href=\"%s\"> این ایراد را گزارش دهید</a> و ثبت وقایع جمعآوری شده از پنجرهی اشکالزدایی در منوی راهنما، را پیوست کنید." -#: ../src/empathy-streamed-media-window.c:2415 +#: ../src/empathy-streamed-media-window.c:2285 +#: ../src/empathy-call-window.c:2106 msgid "There was a failure in the call engine" msgstr "یک خرابی در موتور تماس بوجود آمده بود" -#: ../src/empathy-streamed-media-window.c:2418 +#: ../src/empathy-streamed-media-window.c:2288 +#: ../src/empathy-call-window.c:2109 msgid "The end of the stream was reached" msgstr "به انتهای جریان رسیدیم" -#: ../src/empathy-streamed-media-window.c:2458 +#: ../src/empathy-streamed-media-window.c:2328 +#: ../src/empathy-call-window.c:2149 msgid "Can't establish audio stream" msgstr "نمیتوان جریان صوتی را برقرار کرد" -#: ../src/empathy-streamed-media-window.c:2468 +#: ../src/empathy-streamed-media-window.c:2338 +#: ../src/empathy-call-window.c:2159 msgid "Can't establish video stream" msgstr "نمیتوان جریان ویدئویی را برقرار کرد" #: ../src/empathy-call-window.ui.h:1 +#: ../src/empathy-preferences.ui.h:2 +#: ../src/empathy-streamed-media-window.ui.h:1 msgid "Audio" msgstr "صدا" -#: ../src/empathy-call-window.ui.h:2 -msgid "Call the contact again" -msgstr "دوباره با آشنای مورد نظر تماس گرفته شود" - #: ../src/empathy-call-window.ui.h:3 -msgid "Camera Off" -msgstr "خاموش کردن دوربین" +#: ../src/empathy-streamed-media-window.ui.h:5 +msgid "Decoding Codec:" +msgstr "رمزگشایی کُدک:" #: ../src/empathy-call-window.ui.h:4 -msgid "Camera On" -msgstr "روشن کردن دوربین" +#| msgid "_Disable" +msgid "Disable camera" +msgstr "غیرفعالکردن دوربین" #: ../src/empathy-call-window.ui.h:5 -msgid "Decoding Codec:" -msgstr "رمزگشایی کُدک:" +msgid "Display the dialpad" +msgstr "نمایش صفحه شمارهگیر" #: ../src/empathy-call-window.ui.h:6 -msgid "Disable camera and stop sending video" -msgstr "دوربین از کار بیافتد و فرستادن ویدئو متوقف شود" +#: ../src/empathy-streamed-media-window.ui.h:9 +msgid "Encoding Codec:" +msgstr "رمزنگاری کُدک:" #: ../src/empathy-call-window.ui.h:7 -msgid "Enable camera and send video" -msgstr "دوربین به کار بیافتد و ویدئو ارسال شود" +#: ../src/empathy-streamed-media-window.ui.h:10 +msgid "Hang up" +msgstr "قطع کردن" #: ../src/empathy-call-window.ui.h:8 -msgid "Enable camera but don't send video" -msgstr "دوربین به کار بیافتد ولی ویدئو فرستاد نشود" +#: ../src/empathy-streamed-media-window.ui.h:11 +msgid "Hang up current call" +msgstr "تماس جاری قطع شود" #: ../src/empathy-call-window.ui.h:9 -msgid "Encoding Codec:" -msgstr "رمزنگاری کُدک:" +#: ../src/empathy-streamed-media-window.ui.h:12 +msgid "Local Candidate:" +msgstr "کاندیدای محلی:" #: ../src/empathy-call-window.ui.h:10 -msgid "Hang up" -msgstr "قطع کردن" +msgid "Maximise me" +msgstr " حداکثر کردن من" #: ../src/empathy-call-window.ui.h:11 -msgid "Hang up current call" -msgstr "تماس جاری قطع شود" +msgid "Minimise me" +msgstr "حداقل کردن من" #: ../src/empathy-call-window.ui.h:12 -msgid "Local Candidate:" -msgstr "کاندیدای محلی:" +#: ../src/empathy-streamed-media-window.ui.h:15 +msgid "Remote Candidate:" +msgstr "کاندیدای دوردست:" #: ../src/empathy-call-window.ui.h:13 -msgid "Preview" -msgstr "پیشنمایش" +#: ../src/empathy-streamed-media-window.ui.h:16 +msgid "Send Audio" +msgstr "فرستادن صدا" #: ../src/empathy-call-window.ui.h:14 -msgid "Redial" -msgstr "تماس دوباره" +#| msgid "Send _Video" +msgid "Send Video" +msgstr "فرستادن ویدئو" #: ../src/empathy-call-window.ui.h:15 -msgid "Remote Candidate:" -msgstr "کاندیدای دوردست:" +#| msgid "Dialpad" +msgid "Show dialpad" +msgstr "نمایش شمارهگیر" #: ../src/empathy-call-window.ui.h:16 -msgid "Send Audio" -msgstr "فرستادن صدا" +msgid "Start a video call" +msgstr "شروع یک تماس ویدئویی" #: ../src/empathy-call-window.ui.h:17 -msgid "Toggle audio transmission" -msgstr "تغییر حالت ارسال صدا" +msgid "Start an audio call" +msgstr "شروع یک تماس صوتی" #: ../src/empathy-call-window.ui.h:18 -msgid "Unknown" -msgstr "ناشناخته" +#: ../src/empathy-streamed-media-window.ui.h:17 +msgid "Toggle audio transmission" +msgstr "تغییر حالت ارسال صدا" #: ../src/empathy-call-window.ui.h:19 -msgid "V_ideo" -msgstr "_ویدئو" +#| msgid "Toggle audio transmission" +msgid "Toggle video transmission" +msgstr "تغییر حالت ارسال ویدئو" #: ../src/empathy-call-window.ui.h:20 -msgid "Video" -msgstr "ویدئو" - -#: ../src/empathy-call-window.ui.h:21 -msgid "Video Off" -msgstr "خاموش کردن ویدئو" +#: ../src/empathy-streamed-media-window.ui.h:18 +#: ../src/empathy-call-window.c:1659 +#: ../src/empathy-call-window.c:1660 +#: ../src/empathy-call-window.c:1661 +#: ../src/empathy-call-window.c:1662 +msgid "Unknown" +msgstr "ناشناخته" #: ../src/empathy-call-window.ui.h:22 -msgid "Video On" -msgstr "روشن کردن ویدئو" +#| msgctxt "menu item" +#| msgid "_Video Call" +msgid "Video call" +msgstr "تماس ویدئویی" #: ../src/empathy-call-window.ui.h:23 -msgid "Video Preview" -msgstr "پیشنمایش ویدئو" - -#: ../src/empathy-call-window.ui.h:24 +#: ../src/empathy-streamed-media-window.ui.h:24 msgid "_Call" msgstr "_تماس" +#: ../src/empathy-call-window.ui.h:24 +#: ../src/empathy-chat-window.ui.h:9 +#: ../src/empathy-main-window.ui.h:18 +msgid "_Contents" +msgstr "_محتویات" + #: ../src/empathy-call-window.ui.h:25 -#: ../src/empathy-main-window.ui.h:29 -msgid "_View" -msgstr "_نما" +#: ../src/empathy-main-window.ui.h:19 +msgid "_Debug" +msgstr "_اشکالزدایی" + +#: ../src/empathy-call-window.ui.h:27 +#: ../src/empathy-chat-window.ui.h:14 +#: ../src/empathy-main-window.ui.h:22 +msgid "_Help" +msgstr "_راهنما" + +#: ../src/empathy-call-window.ui.h:28 +msgid "_Microphone" +msgstr "_میکروفون" + +#: ../src/empathy-call-window.ui.h:29 +msgid "_Settings" +msgstr "_تنظیمات" -#: ../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 (%Id نخوانده)" msgstr[1] "%s (%Id نخوانده)" -#: ../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 (و %Iu دیگر)" msgstr[1] "%s (و %Iu دیگر)" -#: ../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 (%Id نخوانده از بین دیگران)" msgstr[1] "%s (%Id نخوانده از بین دیگران)" -#: ../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 (%Id نخوانده از بین همه)" msgstr[1] "%s (%Id نخوانده از بین همه)" -#: ../src/empathy-chat-window.c:721 +#: ../src/empathy-chat-window.c:732 +msgid "SMS:" +msgstr "اساماس:" + +#: ../src/empathy-chat-window.c:742 +#, c-format +#| msgid "Typing a message." +msgid "Sending %d message" +msgid_plural "Sending %d messages" +msgstr[0] "درحال ارسال %Id پیام" +msgstr[1] "درحال ارسال %Id پیام" + +#: ../src/empathy-chat-window.c:764 msgid "Typing a message." msgstr "درحال تایپ یک پیام." @@ -3105,10 +3488,6 @@ msgstr "پا_ک کردن" msgid "C_ontact" msgstr "آ_شنا" -#: ../src/empathy-chat-window.ui.h:3 -msgid "Chat" -msgstr "گپ" - #: ../src/empathy-chat-window.ui.h:4 msgid "Insert _Smiley" msgstr "درج صورتک" @@ -3129,11 +3508,6 @@ msgstr "جابهجایی زبانه به _راست" msgid "Notify for All Messages" msgstr "برای همهی پیامها اخطار داده شود" -#: ../src/empathy-chat-window.ui.h:9 -#: ../src/empathy-main-window.ui.h:17 -msgid "_Contents" -msgstr "_محتویات" - #: ../src/empathy-chat-window.ui.h:10 msgid "_Conversation" msgstr "_گفتگو" @@ -3142,20 +3516,10 @@ msgstr "_گفتگو" msgid "_Detach Tab" msgstr "_جداکردن زبانه" -#: ../src/empathy-chat-window.ui.h:12 -#: ../src/empathy-main-window.ui.h:19 -msgid "_Edit" -msgstr "_ویرایش" - #: ../src/empathy-chat-window.ui.h:13 msgid "_Favorite Chat Room" msgstr "_اتاق گپ مورد پسند" -#: ../src/empathy-chat-window.ui.h:14 -#: ../src/empathy-main-window.ui.h:21 -msgid "_Help" -msgstr "_راهنما" - #: ../src/empathy-chat-window.ui.h:15 msgid "_Next Tab" msgstr "زبانهی _بعدی" @@ -3177,15 +3541,15 @@ msgstr "_زبانهها" msgid "_Undo Close Tab" msgstr "_برگردان بستن زبانه" -#: ../src/empathy-chatrooms-window.c:241 +#: ../src/empathy-chatrooms-window.c:251 msgid "Name" msgstr "نام" -#: ../src/empathy-chatrooms-window.c:259 +#: ../src/empathy-chatrooms-window.c:269 msgid "Room" msgstr "اتاق" -#: ../src/empathy-chatrooms-window.c:267 +#: ../src/empathy-chatrooms-window.c:277 msgid "Auto-Connect" msgstr "اتصال خودکار" @@ -3193,92 +3557,99 @@ msgstr "اتصال خودکار" msgid "Manage Favorite Rooms" msgstr "مدیریت اتاقهای مورد پسند" -#: ../src/empathy-event-manager.c:507 +#: ../src/empathy-event-manager.c:522 msgid "Incoming video call" msgstr "در حال دریافت تماس ویدئویی" -#: ../src/empathy-event-manager.c:507 +#: ../src/empathy-event-manager.c:522 msgid "Incoming call" msgstr "در حال دریافت تماس" -#: ../src/empathy-event-manager.c:511 +#: ../src/empathy-event-manager.c:526 #, c-format msgid "%s is video calling you. Do you want to answer?" msgstr "فرد %s تماس ویدئویی با شما گرفته است، آیا جواب میدهید؟" -#: ../src/empathy-event-manager.c:512 +#: ../src/empathy-event-manager.c:527 #, c-format msgid "%s is calling you. Do you want to answer?" msgstr "فرد %s با شما تماس گرفته است، آیا جواب میدهید؟" -#: ../src/empathy-event-manager.c:515 -#: ../src/empathy-event-manager.c:667 +#: ../src/empathy-event-manager.c:530 +#: ../src/empathy-event-manager.c:731 +#: ../src/empathy-event-manager.c:764 #, c-format msgid "Incoming call from %s" msgstr "در حال دریافت تماس از %s" -#: ../src/empathy-event-manager.c:540 +#: ../src/empathy-event-manager.c:555 msgid "_Reject" msgstr "_رَد" -#: ../src/empathy-event-manager.c:546 +#: ../src/empathy-event-manager.c:563 +#: ../src/empathy-event-manager.c:571 msgid "_Answer" msgstr "_پاسخگویی" -#: ../src/empathy-event-manager.c:667 +#: ../src/empathy-event-manager.c:571 +msgid "_Answer with video" +msgstr "_پاسخگویی با ویدئو" + +#: ../src/empathy-event-manager.c:731 +#: ../src/empathy-event-manager.c:764 #, c-format msgid "Incoming video call from %s" msgstr "ویدئو ورودی از %s" -#: ../src/empathy-event-manager.c:744 +#: ../src/empathy-event-manager.c:837 msgid "Room invitation" msgstr "دعوتنامهی اتاق" -#: ../src/empathy-event-manager.c:746 +#: ../src/empathy-event-manager.c:839 #, c-format msgid "Invitation to join %s" msgstr "دعوتنامه برای پیوستن به %s" -#: ../src/empathy-event-manager.c:753 +#: ../src/empathy-event-manager.c:846 #, c-format msgid "%s is inviting you to join %s" msgstr "آشنای %s از شما دعوت میکند تا به %s بپیوندید" -#: ../src/empathy-event-manager.c:761 +#: ../src/empathy-event-manager.c:854 msgid "_Decline" msgstr "_چشم پوشی" -#: ../src/empathy-event-manager.c:766 +#: ../src/empathy-event-manager.c:859 #: ../src/empathy-new-chatroom-dialog.ui.h:7 msgid "_Join" msgstr "_پیوستن" -#: ../src/empathy-event-manager.c:793 +#: ../src/empathy-event-manager.c:886 #, c-format msgid "%s invited you to join %s" msgstr "آشنای %s از شما دعوت کرد تا به %s بپیوندید" -#: ../src/empathy-event-manager.c:799 +#: ../src/empathy-event-manager.c:892 #, c-format msgid "You have been invited to join %s" msgstr "شما دعوت شدهاید تا به %s بپیوندید" -#: ../src/empathy-event-manager.c:850 +#: ../src/empathy-event-manager.c:943 #, c-format msgid "Incoming file transfer from %s" msgstr "پروندهی دریافت شده از %s" -#: ../src/empathy-event-manager.c:1020 -#: ../src/empathy-main-window.c:370 +#: ../src/empathy-event-manager.c:1135 +#: ../src/empathy-main-window.c:375 msgid "Password required" msgstr "گذرواژه لازم است" -#: ../src/empathy-event-manager.c:1076 +#: ../src/empathy-event-manager.c:1191 #, c-format msgid "%s would like permission to see when you are online" msgstr "آشنا %s اجازه میخواهد تا ببیند چه زمانی برخط هستید" -#: ../src/empathy-event-manager.c:1080 +#: ../src/empathy-event-manager.c:1195 #, c-format msgid "" "\n" @@ -3365,7 +3736,7 @@ msgid "File transfer completed" msgstr "انتقال پرونده کامل شد" #: ../src/empathy-ft-manager.c:616 -#: ../src/empathy-ft-manager.c:783 +#: ../src/empathy-ft-manager.c:780 msgid "Waiting for the other participant's response" msgstr "در حال انتظار برای گرفتن جواب دیگر شرکت کنندگان" @@ -3381,15 +3752,11 @@ msgstr "آزمایش درستی «%s»" msgid "Hashing \"%s\"" msgstr "در حال درهم کردن «%s»" -#: ../src/empathy-ft-manager.c:1029 -msgid "%" -msgstr "٪" - -#: ../src/empathy-ft-manager.c:1041 +#: ../src/empathy-ft-manager.c:1038 msgid "File" msgstr "پرونده" -#: ../src/empathy-ft-manager.c:1063 +#: ../src/empathy-ft-manager.c:1060 msgid "Remaining" msgstr "باقی مانده" @@ -3422,39 +3789,55 @@ msgstr "قرارداد" msgid "Source" msgstr "منبع" -#: ../src/empathy-main-window.c:387 +#: ../src/empathy-main-window.c:392 msgid "Provide Password" msgstr "فراهم کردن گذرواژه" -#: ../src/empathy-main-window.c:393 +#: ../src/empathy-main-window.c:398 msgid "Disconnect" msgstr "قطع اتصال" -#: ../src/empathy-main-window.c:533 +#: ../src/empathy-main-window.c:622 msgid "No match found" msgstr "هیچ مطابقتی پیدا نشد" -#: ../src/empathy-main-window.c:688 +#: ../src/empathy-main-window.c:777 msgid "Reconnect" msgstr "اتصال مجدد" -#: ../src/empathy-main-window.c:694 +#: ../src/empathy-main-window.c:783 msgid "Edit Account" msgstr "ویرایش حساب" -#: ../src/empathy-main-window.c:700 +#: ../src/empathy-main-window.c:789 msgid "Close" msgstr "بستن" -#: ../src/empathy-main-window.c:1418 +#. Translators: this string will be something like: +#. * Top up My Account ($1.23)..." +#: ../src/empathy-main-window.c:928 +#, c-format +msgid "Top up %s (%s)..." +msgstr "بالا بردن %s (%s)..." + +#: ../src/empathy-main-window.c:975 +msgid "Top up account credit" +msgstr "بالا بردن مانده اعتبار" + +#. top up button +#: ../src/empathy-main-window.c:1050 +msgid "Top Up..." +msgstr "بالا بردن..." + +#: ../src/empathy-main-window.c:1817 msgid "Contact" msgstr "تماس" -#: ../src/empathy-main-window.c:1765 +#: ../src/empathy-main-window.c:2145 msgid "Contact List" msgstr "فهرست آشناها" -#: ../src/empathy-main-window.c:1881 +#: ../src/empathy-main-window.c:2263 msgid "Show and edit accounts" msgstr "نمایش و ویرایش حسابها" @@ -3463,91 +3846,96 @@ msgid "Contacts on a _Map" msgstr "آشناها روی یک _نقشه" #: ../src/empathy-main-window.ui.h:2 +msgid "Credit Balance" +msgstr "مانده اعتبار" + +#: ../src/empathy-main-window.ui.h:3 msgid "Find in Contact _List" msgstr "جستجو در _فهرست آشناها" -#: ../src/empathy-main-window.ui.h:3 +#: ../src/empathy-main-window.ui.h:4 msgid "Join _Favorites" msgstr "پیوستن به فهرست _علاقهمندیها" -#: ../src/empathy-main-window.ui.h:4 +#: ../src/empathy-main-window.ui.h:5 msgid "Manage Favorites" msgstr "مدیریت علاقهمندیها" -#: ../src/empathy-main-window.ui.h:5 +#: ../src/empathy-main-window.ui.h:6 msgid "N_ormal Size" msgstr "ا_ندازهی معمولی" -#: ../src/empathy-main-window.ui.h:6 +#: ../src/empathy-main-window.ui.h:7 #: ../src/empathy-status-icon.ui.h:1 msgid "New _Call…" msgstr "تماس _جدید..." -#: ../src/empathy-main-window.ui.h:7 +#: ../src/empathy-main-window.ui.h:8 msgid "Normal Size With _Avatars" msgstr "اندازهی عادی به همراه آ_واتار" -#: ../src/empathy-main-window.ui.h:8 +#: ../src/empathy-main-window.ui.h:9 msgid "P_references" msgstr "_ترجیحات" -#: ../src/empathy-main-window.ui.h:9 +#: ../src/empathy-main-window.ui.h:10 msgid "Show P_rotocols" msgstr "نشان دادن _قراردادها" -#: ../src/empathy-main-window.ui.h:10 +#: ../src/empathy-main-window.ui.h:11 msgid "Sort by _Name" msgstr "مرتبسازی بر اساس _نام" -#: ../src/empathy-main-window.ui.h:11 +#: ../src/empathy-main-window.ui.h:12 msgid "Sort by _Status" msgstr "مرتبسازی بر اساس _وضعیت" -#: ../src/empathy-main-window.ui.h:12 +#: ../src/empathy-main-window.ui.h:13 msgid "_Accounts" msgstr "_حسابها" -#: ../src/empathy-main-window.ui.h:14 +#: ../src/empathy-main-window.ui.h:15 msgid "_Blocked Contacts" msgstr "آشناهای _مسدود شده" -#: ../src/empathy-main-window.ui.h:16 +#: ../src/empathy-main-window.ui.h:17 msgid "_Compact Size" msgstr "اندازهی _فشرده" -#: ../src/empathy-main-window.ui.h:18 -msgid "_Debug" -msgstr "_اشکالزدایی" - -#: ../src/empathy-main-window.ui.h:20 +#: ../src/empathy-main-window.ui.h:21 msgid "_File Transfers" msgstr "انتقال _پروندهها" -#: ../src/empathy-main-window.ui.h:22 +#: ../src/empathy-main-window.ui.h:23 msgid "_Join…" msgstr "_پیوستن..." -#: ../src/empathy-main-window.ui.h:23 +#: ../src/empathy-main-window.ui.h:24 #: ../src/empathy-status-icon.ui.h:3 msgid "_New Conversation…" msgstr "_گفتگوی جدید..." -#: ../src/empathy-main-window.ui.h:24 +#: ../src/empathy-main-window.ui.h:25 msgid "_Offline Contacts" msgstr "آ_شناهای برونخط" -#: ../src/empathy-main-window.ui.h:25 +#: ../src/empathy-main-window.ui.h:26 msgid "_Personal Information" msgstr "_اطلاعات شخصی" -#: ../src/empathy-main-window.ui.h:27 +#: ../src/empathy-main-window.ui.h:28 msgid "_Room" msgstr "_اتاق" -#: ../src/empathy-main-window.ui.h:28 +#: ../src/empathy-main-window.ui.h:29 msgid "_Search for Contacts…" msgstr "_جستجو برای آشناها..." +#: ../src/empathy-main-window.ui.h:30 +#: ../src/empathy-streamed-media-window.ui.h:25 +msgid "_View" +msgstr "_نما" + #: ../src/empathy-new-chatroom-dialog.c:337 msgid "Chat Room" msgstr "اتاق گپ" @@ -3558,7 +3946,7 @@ msgstr "اعضا" #. 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" @@ -3571,16 +3959,16 @@ msgstr "" "نیاز به گذرواژه: %s\n" "اعضا: %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 "خیر" -#: ../src/empathy-new-chatroom-dialog.c:591 +#: ../src/empathy-new-chatroom-dialog.c:584 msgid "Could not start room listing" msgstr "شروع به فهرست کردن اتاق ممکن نبود" -#: ../src/empathy-new-chatroom-dialog.c:601 +#: ../src/empathy-new-chatroom-dialog.c:594 msgid "Could not stop room listing" msgstr "توقف فهرست کردن اتاق امکان پذیر نشد" @@ -3608,39 +3996,82 @@ msgstr "فهرست اتاق" msgid "_Room:" msgstr "_اتاق:" -#: ../src/empathy-preferences.c:139 +#: ../src/empathy-preferences.c:171 msgid "Message received" msgstr "پیام دریافت شد" -#: ../src/empathy-preferences.c:140 +#: ../src/empathy-preferences.c:172 msgid "Message sent" msgstr "پیام فرستادهشده" -#: ../src/empathy-preferences.c:141 +#: ../src/empathy-preferences.c:173 msgid "New conversation" msgstr "گفتگوی جدید" -#: ../src/empathy-preferences.c:142 +#: ../src/empathy-preferences.c:174 msgid "Contact goes online" msgstr "آشنا برخط میشود" -#: ../src/empathy-preferences.c:143 +#: ../src/empathy-preferences.c:175 msgid "Contact goes offline" msgstr "آشنا برونخط میشود" -#: ../src/empathy-preferences.c:144 +#: ../src/empathy-preferences.c:176 msgid "Account connected" msgstr "حساب متصل شد" -#: ../src/empathy-preferences.c:145 +#: ../src/empathy-preferences.c:177 msgid "Account disconnected" msgstr "حساب قطع شد" -#: ../src/empathy-preferences.c:446 +#: ../src/empathy-preferences.c:480 msgid "Language" msgstr "زبان" -#: ../src/empathy-preferences.c:875 +#. translators: Contact name for the chat theme preview +#: ../src/empathy-preferences.c:730 +#| msgid "Client:" +msgid "Juliet" +msgstr "ژولیت" + +#. translators: Contact name for the chat theme preview +#: ../src/empathy-preferences.c:737 +#| msgid "Room" +msgid "Romeo" +msgstr "رومئو" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:743 +msgid "O Romeo, Romeo, wherefore art thou Romeo?" +msgstr "" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:746 +msgid "Deny thy father and refuse thy name;" +msgstr "" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:749 +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:752 +msgid "And I'll no longer be a Capulet." +msgstr "" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:755 +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:758 +#| msgid "%s has disconnected" +msgid "Juliet has disconnected" +msgstr "ژولیت قطع شده است" + +#: ../src/empathy-preferences.c:1164 msgid "Preferences" msgstr "ترجیحات" @@ -3648,128 +4079,141 @@ msgstr "ترجیحات" msgid "Appearance" msgstr "ظاهر" -#: ../src/empathy-preferences.ui.h:2 +#: ../src/empathy-preferences.ui.h:3 msgid "Behavior" msgstr "رفتار" -#: ../src/empathy-preferences.ui.h:3 +#: ../src/empathy-preferences.ui.h:5 msgid "Chat Th_eme:" msgstr "_تم گپ:" -#: ../src/empathy-preferences.ui.h:4 +#: ../src/empathy-preferences.ui.h:6 msgid "Disable notifications when _away or busy" msgstr "در حالت «_غایب» یا «مشغول» اطلاعیهها از کار بیافتند" -#: ../src/empathy-preferences.ui.h:5 +#: ../src/empathy-preferences.ui.h:7 msgid "Disable sounds when _away or busy" msgstr "در حالت «_غایب» یا «مشغول» صداها از کار بیافتند" -#: ../src/empathy-preferences.ui.h:6 +#: ../src/empathy-preferences.ui.h:8 msgid "Display incoming events in the notification area" msgstr "رویدادهای ورودی در منطقهی اطلاعیهها نشان داده شوند" -#: ../src/empathy-preferences.ui.h:7 +#: ../src/empathy-preferences.ui.h:9 msgid "Enable notifications when a contact comes online" msgstr "وقتی آشنایی برخط میشود، اطلاعیهها به کار افتد" -#: ../src/empathy-preferences.ui.h:8 +#: ../src/empathy-preferences.ui.h:10 msgid "Enable notifications when a contact goes offline" msgstr "وقتی آشنایی برونخط میشود، اطلاعیهها به کار افتد" -#: ../src/empathy-preferences.ui.h:9 +#: ../src/empathy-preferences.ui.h:11 msgid "Enable notifications when the _chat is not focused" msgstr "وقتی تمرکز بر پنجرهی _گپ نیست، اطلاعیهها به کار بیافتد" -#: ../src/empathy-preferences.ui.h:10 +#: ../src/empathy-preferences.ui.h:12 msgid "Enable spell checking for languages:" msgstr "غلطیاب املایی به کار افتد برای زبان:" -#: ../src/empathy-preferences.ui.h:11 +#: ../src/empathy-preferences.ui.h:13 msgid "General" msgstr "عمومی" -#: ../src/empathy-preferences.ui.h:13 +#: ../src/empathy-preferences.ui.h:14 +msgid "Input level" +msgstr "سطح ورودی" + +#: ../src/empathy-preferences.ui.h:15 +msgid "Input volume" +msgstr "ورودی بلندی صدا" + +#: ../src/empathy-preferences.ui.h:17 msgid "Location sources:" msgstr "منابع مکانها:" -#: ../src/empathy-preferences.ui.h:14 +#: ../src/empathy-preferences.ui.h:18 msgid "Log conversations" msgstr "ثبت وقایع مکالمات" -#: ../src/empathy-preferences.ui.h:15 +#: ../src/empathy-preferences.ui.h:19 msgid "Notifications" msgstr "اطلاعیهها" -#: ../src/empathy-preferences.ui.h:16 +#: ../src/empathy-preferences.ui.h:20 msgid "Play sound for events" msgstr "پخش صدا برای رویدادها" -#: ../src/empathy-preferences.ui.h:17 +#: ../src/empathy-preferences.ui.h:21 msgid "Privacy" msgstr "حریم خصوصی" -#: ../src/empathy-preferences.ui.h:18 +#: ../src/empathy-preferences.ui.h:22 msgid "Reduced location accuracy means that nothing more precise than your city, state and country will be published. GPS coordinates will be accurate to 1 decimal place." msgstr "«دقت کاهش یافتهی مکان» به این معناست که هیچ چیزی دقیقتر از شهر، ایالت و کشور منتشر نخواهد شد. مختصاتهای موقعیتیاب جغرافیایی (GPS) به میزان یک رقم اعشار دقیق خواهند بود." -#: ../src/empathy-preferences.ui.h:19 +#: ../src/empathy-preferences.ui.h:23 msgid "Show _smileys as images" msgstr "نمایش _صورتکها به صورت تصویر" -#: ../src/empathy-preferences.ui.h:20 +#: ../src/empathy-preferences.ui.h:24 msgid "Show contact _list in rooms" msgstr "نمایش _فهرست آشناها در اتاقها" -#: ../src/empathy-preferences.ui.h:21 +#: ../src/empathy-preferences.ui.h:25 msgid "Sounds" msgstr "صداها" -#: ../src/empathy-preferences.ui.h:22 +#: ../src/empathy-preferences.ui.h:26 msgid "Spell Checking" msgstr "غلطیاب املایی" -#: ../src/empathy-preferences.ui.h:23 +#: ../src/empathy-preferences.ui.h:27 msgid "The list of languages reflects only the languages for which you have a dictionary installed." msgstr "فهرست زبانهایی که اینجا آمدهاند تنها شامل زبانهایی است که شما برایشان لغتنامه نصب کردهاید." -#: ../src/empathy-preferences.ui.h:24 +#: ../src/empathy-preferences.ui.h:28 msgid "Themes" msgstr "تمها" -#: ../src/empathy-preferences.ui.h:25 +#: ../src/empathy-preferences.ui.h:29 +#| msgid "Bearing:" +msgid "Variant:" +msgstr "گزینه:" + +#: ../src/empathy-preferences.ui.h:30 msgid "_Automatically connect on startup" msgstr "اتصال _خودکار در هنگام راهاندازی اولیه" -#: ../src/empathy-preferences.ui.h:26 +#: ../src/empathy-preferences.ui.h:31 msgid "_Cellphone" msgstr "_موبایل" -#: ../src/empathy-preferences.ui.h:27 +#: ../src/empathy-preferences.ui.h:32 msgid "_Enable bubble notifications" msgstr "_فعال کردن اطلاعیههای حبابی" -#: ../src/empathy-preferences.ui.h:28 +#: ../src/empathy-preferences.ui.h:33 msgid "_Enable sound notifications" msgstr "_فعال کردن اطلاعیههای صوتی" -#: ../src/empathy-preferences.ui.h:29 +#: ../src/empathy-preferences.ui.h:34 msgid "_GPS" msgstr "_موقعیتیاب جغرافیایی (GPS)" -#: ../src/empathy-preferences.ui.h:30 +#: ../src/empathy-preferences.ui.h:35 msgid "_Network (IP, Wi-Fi)" msgstr "_شبکه (IP, Wi-Fi)" -#: ../src/empathy-preferences.ui.h:31 +#: ../src/empathy-preferences.ui.h:36 msgid "_Open new chats in separate windows" msgstr "گپهای جدید در پنجرههای _مجزا باز شوند" -#: ../src/empathy-preferences.ui.h:32 +#: ../src/empathy-preferences.ui.h:37 msgid "_Publish location to my contacts" msgstr "_انتشار مکان برای آشناهای من" #. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees. -#: ../src/empathy-preferences.ui.h:34 +#: ../src/empathy-preferences.ui.h:39 msgid "_Reduce location accuracy" msgstr "_کاهش دقت مکان" @@ -3781,81 +4225,129 @@ msgstr "وضعیت" msgid "_Quit" msgstr "_خروج" +#: ../src/empathy-streamed-media-window.ui.h:2 +msgid "Call the contact again" +msgstr "دوباره با آشنای مورد نظر تماس گرفته شود" + +#: ../src/empathy-streamed-media-window.ui.h:3 +msgid "Camera Off" +msgstr "خاموش کردن دوربین" + +#: ../src/empathy-streamed-media-window.ui.h:4 +msgid "Camera On" +msgstr "روشن کردن دوربین" + +#: ../src/empathy-streamed-media-window.ui.h:6 +msgid "Disable camera and stop sending video" +msgstr "دوربین از کار بیافتد و فرستادن ویدئو متوقف شود" + +#: ../src/empathy-streamed-media-window.ui.h:7 +msgid "Enable camera and send video" +msgstr "دوربین به کار بیافتد و ویدئو ارسال شود" + +#: ../src/empathy-streamed-media-window.ui.h:8 +msgid "Enable camera but don't send video" +msgstr "دوربین به کار بیافتد ولی ویدئو فرستاد نشود" + +#: ../src/empathy-streamed-media-window.ui.h:13 +msgid "Preview" +msgstr "پیشنمایش" + +#: ../src/empathy-streamed-media-window.ui.h:14 +msgid "Redial" +msgstr "تماس دوباره" + +#: ../src/empathy-streamed-media-window.ui.h:19 +msgid "V_ideo" +msgstr "_ویدئو" + +#: ../src/empathy-streamed-media-window.ui.h:21 +msgid "Video Off" +msgstr "خاموش کردن ویدئو" + +#: ../src/empathy-streamed-media-window.ui.h:22 +msgid "Video On" +msgstr "روشن کردن ویدئو" + +#: ../src/empathy-streamed-media-window.ui.h:23 +msgid "Video Preview" +msgstr "پیشنمایش ویدئو" + #: ../src/empathy-map-view.c:448 msgid "Contact Map View" msgstr "نمایش نقشهی آشنایان" -#: ../src/empathy-debug-window.c:1218 +#: ../src/empathy-debug-window.c:1228 msgid "Save" msgstr "ذخیره" -#: ../src/empathy-debug-window.c:1394 +#: ../src/empathy-debug-window.c:1435 msgid "Debug Window" msgstr "پنجره اشکالزدایی" -#: ../src/empathy-debug-window.c:1476 +#: ../src/empathy-debug-window.c:1517 msgid "Pause" msgstr "مکث" -#: ../src/empathy-debug-window.c:1488 +#: ../src/empathy-debug-window.c:1529 msgid "Level " msgstr "سطح " -#: ../src/empathy-debug-window.c:1508 +#: ../src/empathy-debug-window.c:1549 msgid "Debug" msgstr "اشکالزدایی" -#: ../src/empathy-debug-window.c:1514 +#: ../src/empathy-debug-window.c:1555 msgid "Info" msgstr "اطلاعات" -#: ../src/empathy-debug-window.c:1520 -#: ../src/empathy-debug-window.c:1569 +#: ../src/empathy-debug-window.c:1561 +#: ../src/empathy-debug-window.c:1610 msgid "Message" msgstr "پیغام" -#: ../src/empathy-debug-window.c:1526 +#: ../src/empathy-debug-window.c:1567 msgid "Warning" msgstr "اخطار" -#: ../src/empathy-debug-window.c:1532 +#: ../src/empathy-debug-window.c:1573 msgid "Critical" msgstr "حیاتی" -#: ../src/empathy-debug-window.c:1538 +#: ../src/empathy-debug-window.c:1579 msgid "Error" msgstr "خطا" -#: ../src/empathy-debug-window.c:1557 +#: ../src/empathy-debug-window.c:1598 msgid "Time" msgstr "زمان" -#: ../src/empathy-debug-window.c:1560 +#: ../src/empathy-debug-window.c:1601 msgid "Domain" msgstr "دامنه" -#: ../src/empathy-debug-window.c:1562 +#: ../src/empathy-debug-window.c:1603 msgid "Category" msgstr "دستهبندی" -#: ../src/empathy-debug-window.c:1564 +#: ../src/empathy-debug-window.c:1605 msgid "Level" msgstr "سطح" -#: ../src/empathy-debug-window.c:1601 +#: ../src/empathy-debug-window.c:1642 msgid "The selected connection manager does not support the remote debugging extension." msgstr "مدیر اتصال انتخاب شده، از افزونهی اشکالزدایی دوردست پشتیبانی نمیکند." -#: ../src/empathy-invite-participant-dialog.c:34 -#: ../src/empathy-invite-participant-dialog.c:48 +#: ../src/empathy-invite-participant-dialog.c:205 +#: ../src/empathy-invite-participant-dialog.c:231 msgid "Invite Participant" msgstr "دعوت از شرکتکنندگان" -#: ../src/empathy-invite-participant-dialog.c:35 +#: ../src/empathy-invite-participant-dialog.c:206 msgid "Choose a contact to invite into the conversation:" msgstr "آشنایی انتخاب کنید تا به گفتگو دعوت شود:" -#: ../src/empathy-invite-participant-dialog.c:45 +#: ../src/empathy-invite-participant-dialog.c:227 msgid "Invite" msgstr "دعوت" @@ -3883,7 +4375,16 @@ msgstr "- حسابهای امپاتی" msgid "Empathy Accounts" msgstr "حسابهای امپاتی" -#: ../src/empathy-debugger.c:66 +#: ../src/empathy-debugger.c:70 +msgid "Show a particular service" +msgstr "نمایش یک سرویس خاص" + +#: ../src/empathy-debugger.c:75 +#| msgid "Empathy Debugger" +msgid "- Empathy Debugger" +msgstr "- اشکالزدای امپاتی" + +#: ../src/empathy-debugger.c:114 msgid "Empathy Debugger" msgstr "اشکالزدای امپاتی" @@ -3891,42 +4392,98 @@ msgstr "اشکالزدای امپاتی" msgid "- Empathy Chat Client" msgstr "- کارگیر گپ امپاتی" -#: ../src/empathy-notifications-approver.c:184 +#: ../src/empathy-notifications-approver.c:203 msgid "Respond" msgstr "پاسخ" -#: ../src/empathy-notifications-approver.c:190 +#: ../src/empathy-notifications-approver.c:217 msgid "Reject" msgstr "رَد" -#: ../src/empathy-notifications-approver.c:194 +#: ../src/empathy-notifications-approver.c:222 +#: ../src/empathy-notifications-approver.c:227 msgid "Answer" msgstr "پاسخ" -#: ../src/empathy-notifications-approver.c:201 -#: ../src/empathy-notifications-approver.c:211 +#: ../src/empathy-notifications-approver.c:227 +msgid "Answer with video" +msgstr "پاسخگویی با ویدئو" + +#: ../src/empathy-notifications-approver.c:235 +#: ../src/empathy-notifications-approver.c:245 msgid "Decline" msgstr "چشم پوشی" -#: ../src/empathy-notifications-approver.c:205 -#: ../src/empathy-notifications-approver.c:216 +#: ../src/empathy-notifications-approver.c:239 +#: ../src/empathy-notifications-approver.c:250 msgid "Accept" msgstr "پذیرش" -#: ../src/empathy-notifications-approver.c:223 +#: ../src/empathy-notifications-approver.c:260 msgid "Provide" msgstr "فراهم کردن" -#: ../src/empathy-call-observer.c:130 -#, c-format -msgid "Missed call from %s" -msgstr "تماس از دست رفته از %s" - -#: ../src/empathy-call-observer.c:133 +#: ../src/empathy-call-observer.c:135 #, c-format msgid "%s just tried to call you, but you were in another call." msgstr "لحظاتی پیش %s سعی کرد تا با شما تماس بگیرد، ولی شما در یک تماس دیگر بودید." +#. Translators: this is an "Info" label. It should be as short +#. * as possible. +#: ../src/empathy-call-window.c:560 +#: ../src/empathy-call-window.c:574 +msgid "i" +msgstr "ر" + +#: ../src/empathy-call-window.c:1952 +msgid "On hold" +msgstr "نگه داشتن پشت خط" + +#: ../src/empathy-call-window.c:1955 +msgid "Mute" +msgstr "بیصدا" + +#: ../src/empathy-call-window.c:1957 +#| msgid "Location" +msgid "Duration" +msgstr "مدت" + +#. Translators: 'status - minutes:seconds' the caller has been connected +#: ../src/empathy-call-window.c:1960 +#, c-format +#| msgid "Connected — %d:%02dm" +msgid "%s — %d:%02dm" +msgstr "%s — %Id:%I02dm" + +#: ../libempathy-gtk/empathy-search-bar.c:243 +#| msgid "Match case" +msgid "_Match case" +msgstr "_تطابق کوچک و بزرگی حروف" + +#~ msgid "All" +#~ msgstr "همه" + +#~ msgid "Date" +#~ msgstr "تاریخ" + +#~ msgid "Conversations" +#~ msgstr "مکالمات" + +#~ msgid "Previous Conversations" +#~ msgstr "مکالمههای قبلی" + +#~ msgid "_For:" +#~ msgstr "_برای:" + +#~ msgid "Enter Custom Message" +#~ msgstr "پیام سفارشی را وارد کنید" + +#~ msgid "Save _New Status Message" +#~ msgstr "ذخیره پیام وضعیت _جدید" + +#~ msgid "Saved Status Messages" +#~ msgstr "پیامهای وضعیت ذخیره شده" + #~ msgid "_Enabled" #~ msgstr "_فعال شد" @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: empathy 3.1.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-12 12:48+0200\n" -"PO-Revision-Date: 2011-07-12 12:50+0200\n" +"POT-Creation-Date: 2011-08-10 15:14+0200\n" +"PO-Revision-Date: 2011-08-10 15:16+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" @@ -39,6 +39,14 @@ msgid "Always open a separate chat window for new chats." msgstr "Alltid åpne et eget vindu til nye samtaler." #: ../data/org.gnome.Empathy.gschema.xml.in.h:2 +msgid "Call volume" +msgstr "Samtalevolum" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:3 +msgid "Call volume, as a percentage." +msgstr "Samtalevolum, som prosent." + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:4 msgid "" "Character to add after nickname when using nick completion (tab) in group " "chat." @@ -46,50 +54,50 @@ msgstr "" "Tegn som skal legges til etter kallenavn når fullføring av kallenavn med " "tabulator benyttes i gruppeprat." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:3 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:5 msgid "Chat window theme" msgstr "Tema for samtalevindu" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:4 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:6 msgid "Chat window theme variant" msgstr "Temavariant for samtalevindu" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:5 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:7 msgid "" "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")." msgstr "" "Kommaseparert liste over stavekontrollspråk som skal brukes (f.eks \"no, en, " "fr, nl\")." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:6 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:8 msgid "Compact contact list" msgstr "Kompakt kontaktliste" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:7 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:9 msgid "Connection managers should be used" msgstr "Tilkoblingshåndterer skal brukes" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:8 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:10 msgid "Contact list sort criterion" msgstr "Sorteringskriterier for kontaktliste" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:9 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:11 msgid "Default directory to select an avatar image from" msgstr "Forvalgt mappe for personbilde" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:10 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:12 msgid "Disable popup notifications when away" msgstr "Slå av varsling når du er borte" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:11 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:13 msgid "Disable sounds when away" msgstr "Slå av lyder når du er borte" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:12 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:14 msgid "Display incoming events in the status area" msgstr "Vis innkommende hendelser i statusområdet" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:13 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:15 msgid "" "Display incoming events in the status area. If false, present them to the " "user immediately." @@ -97,299 +105,299 @@ msgstr "" "Vis innkommende hendelser i statusområdet. Hvis denne er «false» vises disse " "til bruker med det samme." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:14 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:16 msgid "Empathy can publish the user's location" msgstr "Empathy kan publisere brukers plassering" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:15 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:17 msgid "Empathy can use the GPS to guess the location" msgstr "Empathy kan bruke GPS til å gjette plassering" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:16 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:18 msgid "Empathy can use the cellular network to guess the location" msgstr "Empathy kan bruke mobilnettverk til å gjette plassering" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:17 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:19 msgid "Empathy can use the network to guess the location" msgstr "Empathy kan bruke nettverket til å gjette plassering" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:18 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:20 msgid "Empathy default download folder" msgstr "Forvalgt nedlastingsmappe for Empathy" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:19 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:21 msgid "Empathy has migrated butterfly logs" msgstr "Empathy har migrert logger fra butterfly" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:20 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:22 msgid "Empathy should auto-away when idle" msgstr "Empathy skal sette bortestatus automatisk ved inaktivitet" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:21 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:23 msgid "Empathy should auto-connect on startup" msgstr "Empathy skal koble til automatisk ved oppstart" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:22 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:24 msgid "Empathy should reduce the location's accuracy" msgstr "Empathy skal redusere nøyaktighet for plasseringenseri" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:23 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:25 msgid "Empathy should use the avatar of the contact as the chat window icon" msgstr "" "Empathy skal bruke personbildet for kontakten som ikon for pratevinduet" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:24 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:26 msgid "Enable WebKit Developer Tools" msgstr "Slå på utviklerverktøy for WebKit" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:25 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:27 msgid "Enable popup notifications for new messages" msgstr "Aktiver varsling oppsprettmeldinger for nye meldinger" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:26 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:28 msgid "Enable spell checker" msgstr "Bruk stavekontroll" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:27 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:29 msgid "Hide main window" msgstr "Skjul hovedvinduet" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:28 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:30 msgid "Hide the main window." msgstr "Skjul hovedvinduet." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:29 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:31 msgid "Nick completed character" msgstr "Tegn for fullføring av kallenavn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:30 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:32 msgid "Open new chats in separate windows" msgstr "Åpne nye samtaler i egne vinduer" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:31 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:33 msgid "Path of the Adium theme to use" msgstr "Sti til Adium-tema som skal brukes" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:32 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:34 msgid "Path of the Adium theme to use if the theme used for chat is Adium." msgstr "Sti til Adium-tema skal brukes hvis tema for prat er Adium." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:33 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:35 msgid "Play a sound for incoming messages" msgstr "Spill av lyd når meldinger kommer inn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:34 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:36 msgid "Play a sound for new conversations" msgstr "Spill av lyd ved nye samtaler" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:35 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:37 msgid "Play a sound for outgoing messages" msgstr "Spill av lyd for utgående meldinger" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:36 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:38 msgid "Play a sound when a contact logs in" msgstr "Spill av lyd når kontakter logger inn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:37 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:39 msgid "Play a sound when a contact logs out" msgstr "Spill av lyd når kontakter logger ut" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:38 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:40 msgid "Play a sound when we log in" msgstr "Spill av lyd når du logger inn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:39 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:41 msgid "Play a sound when we log out" msgstr "Spill av lyd når du logger ut" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:40 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:42 msgid "Pop up notifications if the chat isn't focused" msgstr "Vis varsling når prat ikke er fokusert" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:41 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:43 msgid "Pop up notifications when a contact logs in" msgstr "Vis varsling når en kontakt logger inn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:42 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:44 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:43 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:45 msgid "Show Balance in contact list" msgstr "Vis saldo i kontaktliste" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:44 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:46 msgid "Show avatars" msgstr "Vis personbilder" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:45 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:47 msgid "Show contact list in rooms" msgstr "Vis kontaktliste i rom" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:46 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:48 msgid "Show hint about closing the main window" msgstr "Vis hint om lukking av hovedvinduet" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:47 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:49 msgid "Show offline contacts" msgstr "Vis frakoblede kontakter" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:48 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:50 msgid "Show protocols" msgstr "Vis protokoller" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:49 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:51 msgid "Spell checking languages" msgstr "Stavekontrollspråk" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:50 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:52 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:51 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:53 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:52 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:54 msgid "The position for the chat window side pane" msgstr "Posisjon for pratevinduets sidelinje" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:53 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:55 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:54 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:56 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:55 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:57 msgid "" "The theme variant that is used to display the conversation in chat windows." msgstr "Temavariant som brukes til å vise samtale i pratevinduer." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:56 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:58 msgid "Use graphical smileys" msgstr "Vis smilefjes grafisk" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:57 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:59 msgid "Use notification sounds" msgstr "Bruk varslingslyder" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:58 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:60 msgid "Use theme for chat rooms" msgstr "Bruk tema for samtalerom" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:59 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:61 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:60 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:62 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:61 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:63 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:62 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:64 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:63 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:65 msgid "Whether Empathy has migrated butterfly logs." msgstr "Om Empathy har migrert logger for butterfly." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:64 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:66 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:65 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:67 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:66 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:68 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:67 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:69 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:68 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:70 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:69 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:71 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:70 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:72 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:71 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:73 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:72 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:74 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:73 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:75 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:74 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:76 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:75 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:77 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:76 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:78 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:77 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:79 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:78 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:80 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:79 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:81 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:80 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:82 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:81 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:83 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:82 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:84 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:83 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:85 msgid "" "Whether to show a popup notification when receiving a new message even if " "the chat is already opened, but not focused." @@ -397,40 +405,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:84 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:86 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:85 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:87 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:86 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:88 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:87 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:89 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:88 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:90 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:89 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:91 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:90 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:92 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:91 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:93 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:92 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:94 msgid "" "Whether to show the message dialog about closing the main window with the " "'x' button in the title bar." @@ -438,11 +446,11 @@ msgstr "" "Om meldingsdialog om lukking av vinduet med «x»-knappen i tittelfeltet skal " "vises." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:93 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:95 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:94 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:96 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 " @@ -732,66 +740,67 @@ msgstr "i fremtiden" msgid "All accounts" msgstr "Alle kontoer" -#: ../libempathy-gtk/empathy-account-widget.c:681 +#: ../libempathy-gtk/empathy-account-widget.c:693 #: ../src/empathy-import-widget.c:321 msgid "Account" msgstr "Konto" -#: ../libempathy-gtk/empathy-account-widget.c:682 +#: ../libempathy-gtk/empathy-account-widget.c:694 msgid "Password" msgstr "Passord" -#: ../libempathy-gtk/empathy-account-widget.c:683 +#: ../libempathy-gtk/empathy-account-widget.c:695 #: ../libempathy-gtk/empathy-irc-network-dialog.c:507 msgid "Server" msgstr "Tjener" -#: ../libempathy-gtk/empathy-account-widget.c:684 +#: ../libempathy-gtk/empathy-account-widget.c:696 #: ../libempathy-gtk/empathy-irc-network-dialog.c:522 msgid "Port" msgstr "Port" -#: ../libempathy-gtk/empathy-account-widget.c:756 -#: ../libempathy-gtk/empathy-account-widget.c:813 +#: ../libempathy-gtk/empathy-account-widget.c:768 +#: ../libempathy-gtk/empathy-account-widget.c:825 #, c-format msgid "%s:" msgstr "%s:" -#: ../libempathy-gtk/empathy-account-widget.c:1154 +#: ../libempathy-gtk/empathy-account-widget.c:1166 #, 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:1160 +#: ../libempathy-gtk/empathy-account-widget.c:1172 #, 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:1180 +#: ../libempathy-gtk/empathy-account-widget.c:1192 msgid "Launch My Web Accounts" msgstr "Start Mine nettkontoer" -#: ../libempathy-gtk/empathy-account-widget.c:1518 +#: ../libempathy-gtk/empathy-account-widget.c:1532 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:11 msgid "Username:" msgstr "Brukernavn:" -#: ../libempathy-gtk/empathy-account-widget.c:1836 +#: ../libempathy-gtk/empathy-account-widget.c:1850 msgid "A_pply" msgstr "_Bruk" -#: ../libempathy-gtk/empathy-account-widget.c:1866 +#: ../libempathy-gtk/empathy-account-widget.c:1880 msgid "L_og in" msgstr "L_ogg inn" -#: ../libempathy-gtk/empathy-account-widget.c:1940 +#: ../libempathy-gtk/empathy-account-widget.c:1954 msgid "This account already exists on the server" msgstr "Denne kontoen eksisterer allerede på tjeneren" -#: ../libempathy-gtk/empathy-account-widget.c:1943 +#: ../libempathy-gtk/empathy-account-widget.c:1957 msgid "Create a new account on the server" msgstr "Lag en ny konto på tjeneren" -#: ../libempathy-gtk/empathy-account-widget.c:2135 +#: ../libempathy-gtk/empathy-account-widget.c:2149 msgid "Ca_ncel" msgstr "A_vbryt" @@ -800,19 +809,19 @@ msgstr "A_vbryt" #. * 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:2413 +#: ../libempathy-gtk/empathy-account-widget.c:2427 #, c-format msgid "%1$s on %2$s" msgstr "%1$s av %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:2439 +#: ../libempathy-gtk/empathy-account-widget.c:2453 #, c-format msgid "%s Account" msgstr "%s-konto" -#: ../libempathy-gtk/empathy-account-widget.c:2443 +#: ../libempathy-gtk/empathy-account-widget.c:2457 msgid "New account" msgstr "Ny konto" @@ -824,6 +833,7 @@ msgstr "<b>Eksempel:</b> MittSkjermNavn " #: ../libempathy-gtk/empathy-account-widget-generic.ui.h:1 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:2 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:2 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:2 #: ../libempathy-gtk/empathy-account-widget-local-xmpp.ui.h:1 @@ -966,43 +976,49 @@ msgstr "Alternativer" msgid "None" msgstr "Ingen" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2 msgid "Character set:" msgstr "Tegnsett:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "De fleste IRC-tjenere krever ikke et passord, så ikke oppgi et passord hvis du ikke er sikker." + +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4 msgid "Network" msgstr "Nettverk" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5 msgid "Network:" msgstr "Nettverk:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6 msgid "Nickname:" msgstr "Kallenavn:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7 msgid "Password:" msgstr "Passord:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8 msgid "Quit message:" msgstr "Melding ved frakobling:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9 msgid "Real name:" msgstr "Virkelig navn:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10 msgid "Servers" msgstr "Tjenere" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:12 msgid "What is your IRC nickname?" msgstr "Hva er ditt kallenavn på IRC?" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:13 msgid "Which IRC network?" msgstr "Hvilket IRC-nettverk?" @@ -1274,40 +1290,40 @@ msgstr "Valgt kontakt er ugyldig" msgid "Emergency calls are not supported on this protocol" msgstr "Nødsamtaler er ikke støttet på denne protokollen" -#: ../libempathy-gtk/empathy-chat.c:697 +#: ../libempathy-gtk/empathy-chat.c:702 msgid "Failed to open private chat" msgstr "Klarte ikke å åpne privat prat" -#: ../libempathy-gtk/empathy-chat.c:758 +#: ../libempathy-gtk/empathy-chat.c:763 msgid "Topic not supported on this conversation" msgstr "Emne er ikke støttet for denne samtalen" -#: ../libempathy-gtk/empathy-chat.c:764 +#: ../libempathy-gtk/empathy-chat.c:769 msgid "You are not allowed to change the topic" msgstr "Du har ikke lov til å bytte emne" -#: ../libempathy-gtk/empathy-chat.c:968 +#: ../libempathy-gtk/empathy-chat.c:973 #, c-format msgid "“%s” is not a valid contact ID" msgstr "«%s» er ikke en gyldig kontakt-ID" -#: ../libempathy-gtk/empathy-chat.c:1025 +#: ../libempathy-gtk/empathy-chat.c:1030 msgid "/clear: clear all messages from the current conversation" msgstr "/clear: tøm alle meldinger fra aktiv samtale" -#: ../libempathy-gtk/empathy-chat.c:1028 +#: ../libempathy-gtk/empathy-chat.c:1033 msgid "/topic <topic>: set the topic of the current conversation" msgstr "/topic <emne>: sett emne for aktiv samtale" -#: ../libempathy-gtk/empathy-chat.c:1031 +#: ../libempathy-gtk/empathy-chat.c:1036 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:1034 +#: ../libempathy-gtk/empathy-chat.c:1039 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:1038 +#: ../libempathy-gtk/empathy-chat.c:1043 msgid "" "/part [<chat room ID>] [<reason>]: leave the chat room, by default the " "current one" @@ -1315,23 +1331,23 @@ msgstr "" "/part [<praterom-ID>] [<årsak>]: forlat praterommet, forvalg er det aktive " "rommet" -#: ../libempathy-gtk/empathy-chat.c:1042 +#: ../libempathy-gtk/empathy-chat.c:1047 msgid "/query <contact ID> [<message>]: open a private chat" msgstr "/query <kontakt-ID> [<melding>]: åpne en privat samtale" -#: ../libempathy-gtk/empathy-chat.c:1045 +#: ../libempathy-gtk/empathy-chat.c:1050 msgid "/msg <contact ID> <message>: open a private chat" msgstr "/msg <kontakt-ID> <melding>: åpne en privat samtale" -#: ../libempathy-gtk/empathy-chat.c:1048 +#: ../libempathy-gtk/empathy-chat.c:1053 msgid "/nick <nickname>: change your nickname on the current server" msgstr "/nick <kallenavn>: bytt kallenavn på denne tjeneren" -#: ../libempathy-gtk/empathy-chat.c:1051 +#: ../libempathy-gtk/empathy-chat.c:1056 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:1054 +#: ../libempathy-gtk/empathy-chat.c:1059 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 " @@ -1341,11 +1357,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:1059 +#: ../libempathy-gtk/empathy-chat.c:1064 msgid "/whois <contact ID>: display information about a contact" msgstr "/whois <kontakt-ID>: vis informasjon om en kontakt" -#: ../libempathy-gtk/empathy-chat.c:1062 +#: ../libempathy-gtk/empathy-chat.c:1067 msgid "" "/help [<command>]: show all supported commands. If <command> is defined, " "show its usage." @@ -1353,113 +1369,113 @@ msgstr "" "/help [<kommando>]: vis alle støttede kommandoer. Vis hjelp for <kommando> " "hvis den er definert." -#: ../libempathy-gtk/empathy-chat.c:1072 +#: ../libempathy-gtk/empathy-chat.c:1077 #, c-format msgid "Usage: %s" msgstr "Bruk: %s" -#: ../libempathy-gtk/empathy-chat.c:1111 +#: ../libempathy-gtk/empathy-chat.c:1116 msgid "Unknown command" msgstr "Ukjent kommando" -#: ../libempathy-gtk/empathy-chat.c:1237 +#: ../libempathy-gtk/empathy-chat.c:1242 msgid "Unknown command; see /help for the available commands" msgstr "Ukjent kommando; se /help for tilgjengelige kommandoer" #. translators: error used when user doesn't have enough credit on his #. * account to send the message. -#: ../libempathy-gtk/empathy-chat.c:1407 +#: ../libempathy-gtk/empathy-chat.c:1412 msgid "insufficient balance to send message" msgstr "ikke nok kreditt til å sende melding" -#: ../libempathy-gtk/empathy-chat.c:1409 +#: ../libempathy-gtk/empathy-chat.c:1414 msgid "not capable" msgstr "ikke kapabel" -#: ../libempathy-gtk/empathy-chat.c:1416 +#: ../libempathy-gtk/empathy-chat.c:1421 msgid "offline" msgstr "frakoblet" -#: ../libempathy-gtk/empathy-chat.c:1419 +#: ../libempathy-gtk/empathy-chat.c:1424 msgid "invalid contact" msgstr "ugyldig kontakt" -#: ../libempathy-gtk/empathy-chat.c:1422 +#: ../libempathy-gtk/empathy-chat.c:1427 msgid "permission denied" msgstr "tilgang nektet" -#: ../libempathy-gtk/empathy-chat.c:1425 +#: ../libempathy-gtk/empathy-chat.c:1430 msgid "too long message" msgstr "meldingen er for lang" -#: ../libempathy-gtk/empathy-chat.c:1428 +#: ../libempathy-gtk/empathy-chat.c:1433 msgid "not implemented" msgstr "ikke implementert" -#: ../libempathy-gtk/empathy-chat.c:1432 +#: ../libempathy-gtk/empathy-chat.c:1437 msgid "unknown" msgstr "ukjent" -#: ../libempathy-gtk/empathy-chat.c:1438 +#: ../libempathy-gtk/empathy-chat.c:1443 #, c-format msgid "Error sending message '%s': %s" msgstr "Feil ved sending av melding «%s»: %s" -#: ../libempathy-gtk/empathy-chat.c:1442 +#: ../libempathy-gtk/empathy-chat.c:1447 #, c-format msgid "Error sending message: %s" msgstr "Feil ved sending av melding: %s" -#: ../libempathy-gtk/empathy-chat.c:1503 ../src/empathy-chat-window.c:760 +#: ../libempathy-gtk/empathy-chat.c:1508 ../src/empathy-chat-window.c:760 msgid "Topic:" msgstr "Emne:" -#: ../libempathy-gtk/empathy-chat.c:1515 +#: ../libempathy-gtk/empathy-chat.c:1520 #, c-format msgid "Topic set to: %s" msgstr "Emnet er satt til: %s" -#: ../libempathy-gtk/empathy-chat.c:1517 +#: ../libempathy-gtk/empathy-chat.c:1522 msgid "No topic defined" msgstr "Emne ikke definert" -#: ../libempathy-gtk/empathy-chat.c:2024 +#: ../libempathy-gtk/empathy-chat.c:2031 msgid "(No Suggestions)" msgstr "(Ingen forslag)" #. translators: %s is the selected word -#: ../libempathy-gtk/empathy-chat.c:2092 +#: ../libempathy-gtk/empathy-chat.c:2099 #, 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:2129 +#: ../libempathy-gtk/empathy-chat.c:2136 #, c-format msgid "Add '%s' to %s Dictionary" msgstr "Legg til «%s» i ordbok for %s" -#: ../libempathy-gtk/empathy-chat.c:2186 +#: ../libempathy-gtk/empathy-chat.c:2206 msgid "Insert Smiley" msgstr "Sett inn smilefjes" #. send button -#: ../libempathy-gtk/empathy-chat.c:2204 -#: ../libempathy-gtk/empathy-ui-utils.c:1756 +#: ../libempathy-gtk/empathy-chat.c:2224 +#: ../libempathy-gtk/empathy-ui-utils.c:1757 msgid "_Send" msgstr "_Send" #. Spelling suggestions -#: ../libempathy-gtk/empathy-chat.c:2239 +#: ../libempathy-gtk/empathy-chat.c:2278 msgid "_Spelling Suggestions" msgstr "_Staveforslag" -#: ../libempathy-gtk/empathy-chat.c:2328 +#: ../libempathy-gtk/empathy-chat.c:2367 msgid "Failed to retrieve recent logs" msgstr "Klarte ikke å hente siste logger" -#: ../libempathy-gtk/empathy-chat.c:2465 +#: ../libempathy-gtk/empathy-chat.c:2504 #, c-format msgid "%s has disconnected" msgstr "%s har koblet fra" @@ -1467,12 +1483,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:2472 +#: ../libempathy-gtk/empathy-chat.c:2511 #, c-format msgid "%1$s was kicked by %2$s" msgstr "%1$s ble sparket av %2$s" -#: ../libempathy-gtk/empathy-chat.c:2475 +#: ../libempathy-gtk/empathy-chat.c:2514 #, c-format msgid "%s was kicked" msgstr "%s ble sparket" @@ -1480,17 +1496,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:2483 +#: ../libempathy-gtk/empathy-chat.c:2522 #, c-format msgid "%1$s was banned by %2$s" msgstr "%1$s ble bannlyst av %2$s" -#: ../libempathy-gtk/empathy-chat.c:2486 +#: ../libempathy-gtk/empathy-chat.c:2525 #, c-format msgid "%s was banned" msgstr "%s ble bannlyst" -#: ../libempathy-gtk/empathy-chat.c:2490 +#: ../libempathy-gtk/empathy-chat.c:2529 #, c-format msgid "%s has left the room" msgstr "%s har forlatt rommet" @@ -1500,69 +1516,68 @@ 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:2499 +#: ../libempathy-gtk/empathy-chat.c:2538 #, c-format msgid " (%s)" msgstr " (%s)" -#: ../libempathy-gtk/empathy-chat.c:2524 +#: ../libempathy-gtk/empathy-chat.c:2563 #, c-format msgid "%s has joined the room" msgstr "%s har blitt med i rommet" -#: ../libempathy-gtk/empathy-chat.c:2549 +#: ../libempathy-gtk/empathy-chat.c:2588 #, c-format msgid "%s is now known as %s" msgstr "%s er nå kjent som %s" -#: ../libempathy-gtk/empathy-chat.c:2688 -#: ../src/empathy-streamed-media-window.c:1939 -#: ../src/empathy-event-manager.c:1241 ../src/empathy-call-window.c:1858 +#: ../libempathy-gtk/empathy-chat.c:2727 +#: ../src/empathy-streamed-media-window.c:1894 +#: ../src/empathy-event-manager.c:1241 ../src/empathy-call-window.c:1704 msgid "Disconnected" msgstr "Koblet fra" #. Add message -#: ../libempathy-gtk/empathy-chat.c:3332 +#: ../libempathy-gtk/empathy-chat.c:3374 msgid "Would you like to store this password?" msgstr "Vil du lagre dette passordet?" -#: ../libempathy-gtk/empathy-chat.c:3338 +#: ../libempathy-gtk/empathy-chat.c:3380 msgid "Remember" msgstr "Husk" -#: ../libempathy-gtk/empathy-chat.c:3348 +#: ../libempathy-gtk/empathy-chat.c:3390 msgid "Not now" msgstr "Ikke nå" -#: ../libempathy-gtk/empathy-chat.c:3392 +#: ../libempathy-gtk/empathy-chat.c:3434 msgid "Retry" msgstr "Prøv igjen" -#: ../libempathy-gtk/empathy-chat.c:3396 +#: ../libempathy-gtk/empathy-chat.c:3438 msgid "Wrong password; please try again:" msgstr "Feil passord; vennligst prøv igjen:" #. Add message -#: ../libempathy-gtk/empathy-chat.c:3526 +#: ../libempathy-gtk/empathy-chat.c:3568 msgid "This room is protected by a password:" msgstr "Dette rommet er beskyttet med et passord:" -#: ../libempathy-gtk/empathy-chat.c:3553 +#: ../libempathy-gtk/empathy-chat.c:3595 msgid "Join" msgstr "Bli med" -#: ../libempathy-gtk/empathy-chat.c:3755 ../src/empathy-event-manager.c:1262 -#: ../src/empathy-call-window.c:2105 +#: ../libempathy-gtk/empathy-chat.c:3797 ../src/empathy-event-manager.c:1262 msgid "Connected" msgstr "Koblet til" -#: ../libempathy-gtk/empathy-chat.c:3810 +#: ../libempathy-gtk/empathy-chat.c:3852 msgid "Conversation" msgstr "Samtale" #. Translators: this string is a something like #. * "Escher Cat (SMS)" -#: ../libempathy-gtk/empathy-chat.c:3815 +#: ../libempathy-gtk/empathy-chat.c:3857 #, c-format msgid "%s (SMS)" msgstr "%s (SMS)" @@ -1976,7 +1991,7 @@ msgstr "Høyde:" #: ../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 +#: ../src/empathy-preferences.ui.h:16 msgid "Location" msgstr "Sted" @@ -2315,6 +2330,7 @@ msgid "Text chats" msgstr "Tekstsamtaler" #: ../libempathy-gtk/empathy-log-window.c:2775 +#: ../src/empathy-preferences.ui.h:4 msgid "Calls" msgstr "Samtaler" @@ -2353,7 +2369,8 @@ msgstr "<span size=\"x-large\">Laster …</span>" #. translators: Call is a noun. This string is used in the window #. * title #: ../libempathy-gtk/empathy-log-window.ui.h:2 -#: ../src/empathy-streamed-media-window.c:1344 +#: ../src/empathy-streamed-media-window.c:1299 +#: ../src/empathy-call-window.ui.h:2 msgid "Call" msgstr "Ring" @@ -2371,13 +2388,14 @@ msgid "Profile" msgstr "Profil" #: ../libempathy-gtk/empathy-log-window.ui.h:6 -#: ../src/empathy-call-window.ui.h:20 +#: ../src/empathy-call-window.ui.h:21 #: ../src/empathy-streamed-media-window.ui.h:20 msgid "Video" msgstr "Video" #: ../libempathy-gtk/empathy-log-window.ui.h:7 -#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:20 +#: ../src/empathy-call-window.ui.h:26 ../src/empathy-chat-window.ui.h:12 +#: ../src/empathy-main-window.ui.h:20 msgid "_Edit" msgstr "_Rediger" @@ -2645,15 +2663,15 @@ msgstr "Sertifikatdetaljer" msgid "Unable to open URI" msgstr "Kan ikke åpne URI" -#: ../libempathy-gtk/empathy-ui-utils.c:1748 +#: ../libempathy-gtk/empathy-ui-utils.c:1749 msgid "Select a file" msgstr "Velg en fil" -#: ../libempathy-gtk/empathy-ui-utils.c:1820 +#: ../libempathy-gtk/empathy-ui-utils.c:1821 msgid "Insufficient free space to save file" msgstr "Ikke nok ledig plass til å lagre filen" -#: ../libempathy-gtk/empathy-ui-utils.c:1828 +#: ../libempathy-gtk/empathy-ui-utils.c:1829 #, c-format msgid "" "%s of free space are required to save this file, but only %s is available. " @@ -2662,7 +2680,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:1872 +#: ../libempathy-gtk/empathy-ui-utils.c:1873 #, c-format msgid "Incoming file from %s" msgstr "Innkommende fil fra %s" @@ -2850,23 +2868,23 @@ msgstr "Ingen feilmelding" msgid "Instant Message (Empathy)" msgstr "Lynmelding (Empathy)" -#: ../src/empathy.c:309 +#: ../src/empathy.c:354 msgid "Don't connect on startup" msgstr "Ikke koble til ved oppstart" -#: ../src/empathy.c:313 +#: ../src/empathy.c:358 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:321 +#: ../src/empathy.c:373 msgid "- Empathy IM Client" msgstr "- Empathy lynmeldingsprogram" -#: ../src/empathy.c:500 +#: ../src/empathy.c:560 msgid "Error contacting the Account Manager" msgstr "Feil ved forsøk på å kontakte kontohåndtering" -#: ../src/empathy.c:502 +#: ../src/empathy.c:562 #, c-format msgid "" "There was an error while trying to connect to the Telepathy Account Manager. " @@ -3095,7 +3113,7 @@ msgid "Your new account has not been saved yet." msgstr "Din nye konto er ikke lagret ennå." #: ../src/empathy-accounts-dialog.c:345 -#: ../src/empathy-streamed-media-window.c:801 ../src/empathy-call-window.c:880 +#: ../src/empathy-streamed-media-window.c:754 ../src/empathy-call-window.c:653 msgid "Connecting…" msgstr "Kobler til …" @@ -3211,113 +3229,108 @@ msgstr "- Empathy lyd-/bildeklient" msgid "Empathy Audio/Video Client" msgstr "Empathy lyd-/bildeklient" -#: ../src/empathy-streamed-media-window.c:478 ../src/empathy-call-window.c:458 +#: ../src/empathy-streamed-media-window.c:431 msgid "Contrast" msgstr "Kontrast" -#: ../src/empathy-streamed-media-window.c:481 ../src/empathy-call-window.c:461 +#: ../src/empathy-streamed-media-window.c:434 msgid "Brightness" msgstr "Lysstyrke" -#: ../src/empathy-streamed-media-window.c:484 ../src/empathy-call-window.c:464 +#: ../src/empathy-streamed-media-window.c:437 msgid "Gamma" msgstr "Gamma" -#: ../src/empathy-streamed-media-window.c:589 ../src/empathy-call-window.c:569 +#: ../src/empathy-streamed-media-window.c:542 msgid "Volume" msgstr "Volum" -#: ../src/empathy-streamed-media-window.c:1157 -#: ../src/empathy-call-window.ui.h:22 +#: ../src/empathy-streamed-media-window.c:1110 msgid "_Sidebar" msgstr "_Sidelinje" -#: ../src/empathy-streamed-media-window.c:1177 -#: ../src/empathy-call-window.c:1149 +#: ../src/empathy-streamed-media-window.c:1130 msgid "Audio input" msgstr "Lydinngang" -#: ../src/empathy-streamed-media-window.c:1181 -#: ../src/empathy-call-window.c:1153 +#: ../src/empathy-streamed-media-window.c:1134 msgid "Video input" msgstr "Videoinngang" -#: ../src/empathy-streamed-media-window.c:1185 -#: ../src/empathy-call-window.c:1157 +#: ../src/empathy-streamed-media-window.c:1140 msgid "Dialpad" msgstr "Nummertavle" -#: ../src/empathy-streamed-media-window.c:1196 -#: ../src/empathy-call-window.c:1167 +#: ../src/empathy-streamed-media-window.c:1151 msgid "Details" msgstr "Detaljer" #. translators: Call is a noun and %s is the contact name. This string #. * is used in the window title -#: ../src/empathy-streamed-media-window.c:1265 -#: ../src/empathy-call-window.c:1250 +#: ../src/empathy-streamed-media-window.c:1220 +#: ../src/empathy-call-window.c:1043 #, c-format msgid "Call with %s" msgstr "Samtale med %s" -#: ../src/empathy-streamed-media-window.c:1498 -#: ../src/empathy-call-window.c:1447 +#: ../src/empathy-streamed-media-window.c:1453 +#: ../src/empathy-call-window.c:1287 msgid "The IP address as seen by the machine" msgstr "IP-adresse som sett av maskinen" -#: ../src/empathy-streamed-media-window.c:1500 -#: ../src/empathy-call-window.c:1449 +#: ../src/empathy-streamed-media-window.c:1455 +#: ../src/empathy-call-window.c:1289 msgid "The IP address as seen by a server on the Internet" msgstr "IP-adresse som sett av en tjener på internett" -#: ../src/empathy-streamed-media-window.c:1502 -#: ../src/empathy-call-window.c:1451 +#: ../src/empathy-streamed-media-window.c:1457 +#: ../src/empathy-call-window.c:1291 msgid "The IP address of the peer as seen by the other side" msgstr "IP-adresse for peer som sett av andre siden" -#: ../src/empathy-streamed-media-window.c:1504 -#: ../src/empathy-call-window.c:1453 +#: ../src/empathy-streamed-media-window.c:1459 +#: ../src/empathy-call-window.c:1293 msgid "The IP address of a relay server" msgstr "IP-adresse for en relay-tjener" -#: ../src/empathy-streamed-media-window.c:1506 -#: ../src/empathy-call-window.c:1455 +#: ../src/empathy-streamed-media-window.c:1461 +#: ../src/empathy-call-window.c:1295 msgid "The IP address of the multicast group" msgstr "IP-adresse for multicast-gruppe" -#: ../src/empathy-streamed-media-window.c:1888 +#: ../src/empathy-streamed-media-window.c:1843 msgctxt "encoding video codec" msgid "Unknown" msgstr "Ukjent" -#: ../src/empathy-streamed-media-window.c:1891 +#: ../src/empathy-streamed-media-window.c:1846 msgctxt "encoding audio codec" msgid "Unknown" msgstr "Ukjent" -#: ../src/empathy-streamed-media-window.c:1894 +#: ../src/empathy-streamed-media-window.c:1849 msgctxt "decoding video codec" msgid "Unknown" msgstr "Ukjent" -#: ../src/empathy-streamed-media-window.c:1897 +#: ../src/empathy-streamed-media-window.c:1852 msgctxt "decoding audio codec" msgid "Unknown" msgstr "Ukjent" #. Translators: number of minutes:seconds the caller has been connected -#: ../src/empathy-streamed-media-window.c:2189 +#: ../src/empathy-streamed-media-window.c:2144 #, c-format msgid "Connected — %d:%02dm" msgstr "Koblet til - %d:%02dm" -#: ../src/empathy-streamed-media-window.c:2250 -#: ../src/empathy-call-window.c:2167 +#: ../src/empathy-streamed-media-window.c:2205 +#: ../src/empathy-call-window.c:2023 msgid "Technical Details" msgstr "Tekniske detaljer" -#: ../src/empathy-streamed-media-window.c:2288 -#: ../src/empathy-call-window.c:2205 +#: ../src/empathy-streamed-media-window.c:2243 +#: ../src/empathy-call-window.c:2061 #, c-format msgid "" "%s's software does not understand any of the audio formats supported by your " @@ -3326,8 +3339,8 @@ msgstr "" "Programvaren til %s forstår ikke noen av lydformatene som støttes av din " "datamaskin" -#: ../src/empathy-streamed-media-window.c:2293 -#: ../src/empathy-call-window.c:2210 +#: ../src/empathy-streamed-media-window.c:2248 +#: ../src/empathy-call-window.c:2066 #, c-format msgid "" "%s's software does not understand any of the video formats supported by your " @@ -3336,8 +3349,8 @@ msgstr "" "Programvaren til %s forstår ikke noen av videoformatene som støttes av din " "datamaskin" -#: ../src/empathy-streamed-media-window.c:2299 -#: ../src/empathy-call-window.c:2216 +#: ../src/empathy-streamed-media-window.c:2254 +#: ../src/empathy-call-window.c:2072 #, c-format msgid "" "Can't establish a connection to %s. One of you might be on a network that " @@ -3346,29 +3359,29 @@ msgstr "" "Kan ikke etablere tilkobling til %s. En av dere kan være på et nettverk som " "ikke tillater direkte tilkoblinger." -#: ../src/empathy-streamed-media-window.c:2305 -#: ../src/empathy-call-window.c:2222 +#: ../src/empathy-streamed-media-window.c:2260 +#: ../src/empathy-call-window.c:2078 msgid "There was a failure on the network" msgstr "Det oppsto en feil på nettverket" -#: ../src/empathy-streamed-media-window.c:2309 -#: ../src/empathy-call-window.c:2226 +#: ../src/empathy-streamed-media-window.c:2264 +#: ../src/empathy-call-window.c:2082 msgid "" "The audio formats necessary for this call are not installed on your computer" msgstr "" "Lydformatene som kreves for denne samtalen er ikke installert på din " "datamaskin" -#: ../src/empathy-streamed-media-window.c:2312 -#: ../src/empathy-call-window.c:2229 +#: ../src/empathy-streamed-media-window.c:2267 +#: ../src/empathy-call-window.c:2085 msgid "" "The video formats necessary for this call are not installed on your computer" msgstr "" "Videoformatene som kreves for denne samtalen er ikke installert på din " "datamaskin" -#: ../src/empathy-streamed-media-window.c:2322 -#: ../src/empathy-call-window.c:2241 +#: ../src/empathy-streamed-media-window.c:2277 +#: ../src/empathy-call-window.c:2097 #, c-format msgid "" "Something unexpected happened in a Telepathy component. Please <a href=\"%s" @@ -3379,36 +3392,31 @@ msgstr "" "\">rapporter denne feilen</a> og legg ved loggene som samles inn i " "«Feilsøking»-vinduet i Hjelp-menyen." -#: ../src/empathy-streamed-media-window.c:2330 -#: ../src/empathy-call-window.c:2250 +#: ../src/empathy-streamed-media-window.c:2285 +#: ../src/empathy-call-window.c:2106 msgid "There was a failure in the call engine" msgstr "Det oppsto en feil i samtalemotoren" -#: ../src/empathy-streamed-media-window.c:2333 -#: ../src/empathy-call-window.c:2253 +#: ../src/empathy-streamed-media-window.c:2288 +#: ../src/empathy-call-window.c:2109 msgid "The end of the stream was reached" msgstr "Slutt på strømmen ble nådd" -#: ../src/empathy-streamed-media-window.c:2373 -#: ../src/empathy-call-window.c:2293 +#: ../src/empathy-streamed-media-window.c:2328 +#: ../src/empathy-call-window.c:2149 msgid "Can't establish audio stream" msgstr "Kan ikke etablere lydstrøm" -#: ../src/empathy-streamed-media-window.c:2383 -#: ../src/empathy-call-window.c:2303 +#: ../src/empathy-streamed-media-window.c:2338 +#: ../src/empathy-call-window.c:2159 msgid "Can't establish video stream" msgstr "Kan ikke etablere videostrøm" -#: ../src/empathy-call-window.ui.h:1 +#: ../src/empathy-call-window.ui.h:1 ../src/empathy-preferences.ui.h:2 #: ../src/empathy-streamed-media-window.ui.h:1 msgid "Audio" msgstr "Lyd" -#: ../src/empathy-call-window.ui.h:2 -#: ../src/empathy-streamed-media-window.ui.h:2 -msgid "Call the contact again" -msgstr "Ring kontakten igjen" - #: ../src/empathy-call-window.ui.h:3 #: ../src/empathy-streamed-media-window.ui.h:5 msgid "Decoding Codec:" @@ -3451,53 +3459,77 @@ msgid "Minimise me" msgstr "Minimer meg" #: ../src/empathy-call-window.ui.h:12 -#: ../src/empathy-streamed-media-window.ui.h:14 -msgid "Redial" -msgstr "Ring på nytt" - -#: ../src/empathy-call-window.ui.h:13 #: ../src/empathy-streamed-media-window.ui.h:15 msgid "Remote Candidate:" msgstr "Ekstern kandidat:" -#: ../src/empathy-call-window.ui.h:14 +#: ../src/empathy-call-window.ui.h:13 #: ../src/empathy-streamed-media-window.ui.h:16 msgid "Send Audio" msgstr "Send lyd" -#: ../src/empathy-call-window.ui.h:15 +#: ../src/empathy-call-window.ui.h:14 msgid "Send Video" msgstr "Send video" -#: ../src/empathy-call-window.ui.h:16 +#: ../src/empathy-call-window.ui.h:15 msgid "Show dialpad" msgstr "Vis ringetastatur" +#: ../src/empathy-call-window.ui.h:16 +msgid "Start a video call" +msgstr "Start en videosamtale" + #: ../src/empathy-call-window.ui.h:17 +msgid "Start an audio call" +msgstr "Start en lydsamtale" + +#: ../src/empathy-call-window.ui.h:18 #: ../src/empathy-streamed-media-window.ui.h:17 msgid "Toggle audio transmission" msgstr "Slå av/på overføring av lyd" -#: ../src/empathy-call-window.ui.h:18 +#: ../src/empathy-call-window.ui.h:19 msgid "Toggle video transmission" msgstr "Slå av/på overføring av video" -#: ../src/empathy-call-window.ui.h:19 +#: ../src/empathy-call-window.ui.h:20 #: ../src/empathy-streamed-media-window.ui.h:18 -#: ../src/empathy-call-window.c:1813 ../src/empathy-call-window.c:1814 -#: ../src/empathy-call-window.c:1815 ../src/empathy-call-window.c:1816 +#: ../src/empathy-call-window.c:1659 ../src/empathy-call-window.c:1660 +#: ../src/empathy-call-window.c:1661 ../src/empathy-call-window.c:1662 msgid "Unknown" msgstr "Ukjent" -#: ../src/empathy-call-window.ui.h:21 +#: ../src/empathy-call-window.ui.h:22 +msgid "Video call" +msgstr "Videosamtale" + +#: ../src/empathy-call-window.ui.h:23 #: ../src/empathy-streamed-media-window.ui.h:24 msgid "_Call" msgstr "_Ring" -#: ../src/empathy-call-window.ui.h:23 ../src/empathy-main-window.ui.h:30 -#: ../src/empathy-streamed-media-window.ui.h:25 -msgid "_View" -msgstr "_Vis" +#: ../src/empathy-call-window.ui.h:24 ../src/empathy-chat-window.ui.h:9 +#: ../src/empathy-main-window.ui.h:18 +msgid "_Contents" +msgstr "_Innhold" + +#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:19 +msgid "_Debug" +msgstr "_Feilsøk" + +#: ../src/empathy-call-window.ui.h:27 ../src/empathy-chat-window.ui.h:14 +#: ../src/empathy-main-window.ui.h:22 +msgid "_Help" +msgstr "_Hjelp" + +#: ../src/empathy-call-window.ui.h:28 +msgid "_Microphone" +msgstr "_Mikrofon" + +#: ../src/empathy-call-window.ui.h:29 +msgid "_Settings" +msgstr "Inn_stillinger" #: ../src/empathy-chat-window.c:480 ../src/empathy-chat-window.c:500 #, c-format @@ -3570,10 +3602,6 @@ 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:18 -msgid "_Contents" -msgstr "_Innhold" - #: ../src/empathy-chat-window.ui.h:10 msgid "_Conversation" msgstr "_Samtale" @@ -3586,10 +3614,6 @@ msgstr "Riv _løs fane" msgid "_Favorite Chat Room" msgstr "_Favoritt-praterom" -#: ../src/empathy-chat-window.ui.h:14 ../src/empathy-main-window.ui.h:22 -msgid "_Help" -msgstr "_Hjelp" - #: ../src/empathy-chat-window.ui.h:15 msgid "_Next Tab" msgstr "_Neste fane" @@ -3897,11 +3921,11 @@ msgstr "Fyll opp …" msgid "Contact" msgstr "Kontakt" -#: ../src/empathy-main-window.c:2169 +#: ../src/empathy-main-window.c:2145 msgid "Contact List" msgstr "Kontaktliste" -#: ../src/empathy-main-window.c:2287 +#: ../src/empathy-main-window.c:2263 msgid "Show and edit accounts" msgstr "Vis og rediger kontoer" @@ -3965,10 +3989,6 @@ msgstr "_Blokkerte kontakter" msgid "_Compact Size" msgstr "_Kompakt størrelse" -#: ../src/empathy-main-window.ui.h:19 -msgid "_Debug" -msgstr "_Feilsøk" - #: ../src/empathy-main-window.ui.h:21 msgid "_File Transfers" msgstr "_Filoverføringer" @@ -3997,6 +4017,11 @@ msgstr "_Rom" msgid "_Search for Contacts…" msgstr "_Søk etter kontakter …" +#: ../src/empathy-main-window.ui.h:30 +#: ../src/empathy-streamed-media-window.ui.h:25 +msgid "_View" +msgstr "_Vis" + #: ../src/empathy-new-chatroom-dialog.c:337 msgid "Chat Room" msgstr "Samtalerom" @@ -4064,79 +4089,79 @@ msgstr "Romliste" msgid "_Room:" msgstr "_Rom:" -#: ../src/empathy-preferences.c:156 +#: ../src/empathy-preferences.c:171 msgid "Message received" msgstr "Melding mottatt" -#: ../src/empathy-preferences.c:157 +#: ../src/empathy-preferences.c:172 msgid "Message sent" msgstr "Melding sendt" -#: ../src/empathy-preferences.c:158 +#: ../src/empathy-preferences.c:173 msgid "New conversation" msgstr "Ny samtale" -#: ../src/empathy-preferences.c:159 +#: ../src/empathy-preferences.c:174 msgid "Contact goes online" msgstr "Kontakt kobler til" -#: ../src/empathy-preferences.c:160 +#: ../src/empathy-preferences.c:175 msgid "Contact goes offline" msgstr "Kontakt kobler fra" -#: ../src/empathy-preferences.c:161 +#: ../src/empathy-preferences.c:176 msgid "Account connected" msgstr "Konto koblet til" -#: ../src/empathy-preferences.c:162 +#: ../src/empathy-preferences.c:177 msgid "Account disconnected" msgstr "Konto koblet fra" -#: ../src/empathy-preferences.c:459 +#: ../src/empathy-preferences.c:480 msgid "Language" msgstr "Språk" #. translators: Contact name for the chat theme preview -#: ../src/empathy-preferences.c:709 +#: ../src/empathy-preferences.c:730 msgid "Juliet" msgstr "Juliet" #. translators: Contact name for the chat theme preview -#: ../src/empathy-preferences.c:716 +#: ../src/empathy-preferences.c:737 msgid "Romeo" msgstr "Romeo" #. translators: Quote from Romeo & Julier, for chat theme preview -#: ../src/empathy-preferences.c:722 +#: ../src/empathy-preferences.c:743 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:725 +#: ../src/empathy-preferences.c:746 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:728 +#: ../src/empathy-preferences.c:749 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:731 +#: ../src/empathy-preferences.c:752 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:734 +#: ../src/empathy-preferences.c:755 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:737 +#: ../src/empathy-preferences.c:758 msgid "Juliet has disconnected" msgstr "Juliet har koblet fra" -#: ../src/empathy-preferences.c:1135 +#: ../src/empathy-preferences.c:1164 msgid "Preferences" msgstr "Brukervalg" @@ -4144,67 +4169,75 @@ msgstr "Brukervalg" msgid "Appearance" msgstr "Utseende" -#: ../src/empathy-preferences.ui.h:2 +#: ../src/empathy-preferences.ui.h:3 msgid "Behavior" msgstr "Oppførsel" -#: ../src/empathy-preferences.ui.h:3 +#: ../src/empathy-preferences.ui.h:5 msgid "Chat Th_eme:" msgstr "Samtale_tema:" -#: ../src/empathy-preferences.ui.h:4 +#: ../src/empathy-preferences.ui.h:6 msgid "Disable notifications when _away or busy" msgstr "Slå av varsling når du er borte eller oppt_att" -#: ../src/empathy-preferences.ui.h:5 +#: ../src/empathy-preferences.ui.h:7 msgid "Disable sounds when _away or busy" msgstr "Slå av lyder når du er b_orte eller opptatt" -#: ../src/empathy-preferences.ui.h:6 +#: ../src/empathy-preferences.ui.h:8 msgid "Display incoming events in the notification area" msgstr "Vis innkommende hendelser i varslingsområdet" -#: ../src/empathy-preferences.ui.h:7 +#: ../src/empathy-preferences.ui.h:9 msgid "Enable notifications when a contact comes online" msgstr "Slå på varsling når en kontakt kobler seg til" -#: ../src/empathy-preferences.ui.h:8 +#: ../src/empathy-preferences.ui.h:10 msgid "Enable notifications when a contact goes offline" msgstr "Slå på varsling når en kontakt kobler seg fra" -#: ../src/empathy-preferences.ui.h:9 +#: ../src/empathy-preferences.ui.h:11 msgid "Enable notifications when the _chat is not focused" msgstr "Aktiver varsling når _prat ikke er fokusert" -#: ../src/empathy-preferences.ui.h:10 +#: ../src/empathy-preferences.ui.h:12 msgid "Enable spell checking for languages:" msgstr "Slå på stavekontroll for språk:" -#: ../src/empathy-preferences.ui.h:11 +#: ../src/empathy-preferences.ui.h:13 msgid "General" msgstr "Generelt" -#: ../src/empathy-preferences.ui.h:13 +#: ../src/empathy-preferences.ui.h:14 +msgid "Input level" +msgstr "Inngangsnivå" + +#: ../src/empathy-preferences.ui.h:15 +msgid "Input volume" +msgstr "Volum for inngang" + +#: ../src/empathy-preferences.ui.h:17 msgid "Location sources:" msgstr "Kilder for steder:" -#: ../src/empathy-preferences.ui.h:14 +#: ../src/empathy-preferences.ui.h:18 msgid "Log conversations" msgstr "Logg samtaler" -#: ../src/empathy-preferences.ui.h:15 +#: ../src/empathy-preferences.ui.h:19 msgid "Notifications" msgstr "Varsling" -#: ../src/empathy-preferences.ui.h:16 +#: ../src/empathy-preferences.ui.h:20 msgid "Play sound for events" msgstr "Spill av lyd for hendelser" -#: ../src/empathy-preferences.ui.h:17 +#: ../src/empathy-preferences.ui.h:21 msgid "Privacy" msgstr "Personvern" -#: ../src/empathy-preferences.ui.h:18 +#: ../src/empathy-preferences.ui.h:22 msgid "" "Reduced location accuracy means that nothing more precise than your city, " "state and country will be published. GPS coordinates will be accurate to 1 " @@ -4213,71 +4246,71 @@ msgstr "" "Redusert nøyaktighet for plassering betyr at kun by, område og land vil " "publisert. GPS-koordinater vil ha nøyaktighet lik en desimalplass." -#: ../src/empathy-preferences.ui.h:19 +#: ../src/empathy-preferences.ui.h:23 msgid "Show _smileys as images" msgstr "Vis _smilefjes som bilder" -#: ../src/empathy-preferences.ui.h:20 +#: ../src/empathy-preferences.ui.h:24 msgid "Show contact _list in rooms" msgstr "Vis kontakt_liste i rom" -#: ../src/empathy-preferences.ui.h:21 +#: ../src/empathy-preferences.ui.h:25 msgid "Sounds" msgstr "Lyder" -#: ../src/empathy-preferences.ui.h:22 +#: ../src/empathy-preferences.ui.h:26 msgid "Spell Checking" msgstr "Stavekontroll" -#: ../src/empathy-preferences.ui.h:23 +#: ../src/empathy-preferences.ui.h:27 msgid "" "The list of languages reflects only the languages for which you have a " "dictionary installed." msgstr "" "Listen med språk viser bare de språkene det er installert ordliste for." -#: ../src/empathy-preferences.ui.h:24 +#: ../src/empathy-preferences.ui.h:28 msgid "Themes" msgstr "Temaer" -#: ../src/empathy-preferences.ui.h:25 +#: ../src/empathy-preferences.ui.h:29 msgid "Variant:" msgstr "Variant:" -#: ../src/empathy-preferences.ui.h:26 +#: ../src/empathy-preferences.ui.h:30 msgid "_Automatically connect on startup" msgstr "Koble til _automatisk ved oppstart" -#: ../src/empathy-preferences.ui.h:27 +#: ../src/empathy-preferences.ui.h:31 msgid "_Cellphone" msgstr "_Mobiltelefon" -#: ../src/empathy-preferences.ui.h:28 +#: ../src/empathy-preferences.ui.h:32 msgid "_Enable bubble notifications" msgstr "_Aktiver varsling med bobler" -#: ../src/empathy-preferences.ui.h:29 +#: ../src/empathy-preferences.ui.h:33 msgid "_Enable sound notifications" msgstr "_Aktiver varsling med lyder" -#: ../src/empathy-preferences.ui.h:30 +#: ../src/empathy-preferences.ui.h:34 msgid "_GPS" msgstr "_GPS" -#: ../src/empathy-preferences.ui.h:31 +#: ../src/empathy-preferences.ui.h:35 msgid "_Network (IP, Wi-Fi)" msgstr "_Nettverk (IP, Wi-Fi)" -#: ../src/empathy-preferences.ui.h:32 +#: ../src/empathy-preferences.ui.h:36 msgid "_Open new chats in separate windows" msgstr "_Åpne nye samtaler i egne vinduer" -#: ../src/empathy-preferences.ui.h:33 +#: ../src/empathy-preferences.ui.h:37 msgid "_Publish location to my contacts" msgstr "_Publiser plassering til mine kontakter" #. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees. -#: ../src/empathy-preferences.ui.h:35 +#: ../src/empathy-preferences.ui.h:39 msgid "_Reduce location accuracy" msgstr "_Reduser nøyaktighet for plassering" @@ -4289,6 +4322,10 @@ msgstr "Status" msgid "_Quit" msgstr "_Avslutt" +#: ../src/empathy-streamed-media-window.ui.h:2 +msgid "Call the contact again" +msgstr "Ring kontakten igjen" + #: ../src/empathy-streamed-media-window.ui.h:3 msgid "Camera Off" msgstr "Kamera av" @@ -4313,6 +4350,10 @@ msgstr "Slå på kamera men ikke send video" msgid "Preview" msgstr "Forhåndsvis" +#: ../src/empathy-streamed-media-window.ui.h:14 +msgid "Redial" +msgstr "Ring på nytt" + #: ../src/empathy-streamed-media-window.ui.h:19 msgid "V_ideo" msgstr "V_ideo" @@ -4333,79 +4374,79 @@ msgstr "Forhåndsvis video" msgid "Contact Map View" msgstr "Kartvisning for kontakter" -#: ../src/empathy-debug-window.c:1218 +#: ../src/empathy-debug-window.c:1228 msgid "Save" msgstr "Lagre" -#: ../src/empathy-debug-window.c:1394 +#: ../src/empathy-debug-window.c:1435 msgid "Debug Window" msgstr "Feilsøkingsvindu" -#: ../src/empathy-debug-window.c:1476 +#: ../src/empathy-debug-window.c:1517 msgid "Pause" msgstr "Pause" -#: ../src/empathy-debug-window.c:1488 +#: ../src/empathy-debug-window.c:1529 msgid "Level " msgstr "Nivå " -#: ../src/empathy-debug-window.c:1508 +#: ../src/empathy-debug-window.c:1549 msgid "Debug" msgstr "Feilsøk" -#: ../src/empathy-debug-window.c:1514 +#: ../src/empathy-debug-window.c:1555 msgid "Info" msgstr "Info" -#: ../src/empathy-debug-window.c:1520 ../src/empathy-debug-window.c:1569 +#: ../src/empathy-debug-window.c:1561 ../src/empathy-debug-window.c:1610 msgid "Message" msgstr "Melding" -#: ../src/empathy-debug-window.c:1526 +#: ../src/empathy-debug-window.c:1567 msgid "Warning" msgstr "Advarsel" -#: ../src/empathy-debug-window.c:1532 +#: ../src/empathy-debug-window.c:1573 msgid "Critical" msgstr "Kritisk" -#: ../src/empathy-debug-window.c:1538 +#: ../src/empathy-debug-window.c:1579 msgid "Error" msgstr "Feil" -#: ../src/empathy-debug-window.c:1557 +#: ../src/empathy-debug-window.c:1598 msgid "Time" msgstr "Tid" -#: ../src/empathy-debug-window.c:1560 +#: ../src/empathy-debug-window.c:1601 msgid "Domain" msgstr "Domene" -#: ../src/empathy-debug-window.c:1562 +#: ../src/empathy-debug-window.c:1603 msgid "Category" msgstr "Kategori" -#: ../src/empathy-debug-window.c:1564 +#: ../src/empathy-debug-window.c:1605 msgid "Level" msgstr "Nivå" -#: ../src/empathy-debug-window.c:1601 +#: ../src/empathy-debug-window.c:1642 msgid "" "The selected connection manager does not support the remote debugging " "extension." msgstr "" "Valgt tilkoblingshåndterer støtter ikke utvidelse for ekstern feilsøking." -#: ../src/empathy-invite-participant-dialog.c:429 -#: ../src/empathy-invite-participant-dialog.c:477 +#: ../src/empathy-invite-participant-dialog.c:205 +#: ../src/empathy-invite-participant-dialog.c:231 msgid "Invite Participant" msgstr "Inviter deltaker" -#: ../src/empathy-invite-participant-dialog.c:430 +#: ../src/empathy-invite-participant-dialog.c:206 msgid "Choose a contact to invite into the conversation:" msgstr "Velg en kontakt å invitere til samtalen:" -#: ../src/empathy-invite-participant-dialog.c:473 +#: ../src/empathy-invite-participant-dialog.c:227 msgid "Invite" msgstr "Inviter" @@ -4437,7 +4478,15 @@ msgstr "- Empathy-kontoer" msgid "Empathy Accounts" msgstr "Empathy-kontoer" -#: ../src/empathy-debugger.c:66 +#: ../src/empathy-debugger.c:70 +msgid "Show a particular service" +msgstr "Vis en spesiell tjeneste" + +#: ../src/empathy-debugger.c:75 +msgid "- Empathy Debugger" +msgstr "- Empathy feilsøking" + +#: ../src/empathy-debugger.c:114 msgid "Empathy Debugger" msgstr "Empathy feilsøking" @@ -4483,25 +4532,28 @@ msgstr "%s prøvde å ringe deg, men du var i en annen samtale." #. Translators: this is an "Info" label. It should be as short #. * as possible. -#: ../src/empathy-call-window.c:787 ../src/empathy-call-window.c:801 +#: ../src/empathy-call-window.c:560 ../src/empathy-call-window.c:574 msgid "i" msgstr "i" -#: ../src/empathy-call-window.c:1257 -#, c-format -msgid "Call with %d participants" -msgstr "Samtale med %d deltakere" +#: ../src/empathy-call-window.c:1952 +msgid "On hold" +msgstr "På vent" + +#: ../src/empathy-call-window.c:1955 +msgid "Mute" +msgstr "Demp" + +#: ../src/empathy-call-window.c:1957 +msgid "Duration" +msgstr "Varighet" #. Translators: 'status - minutes:seconds' the caller has been connected -#: ../src/empathy-call-window.c:2104 +#: ../src/empathy-call-window.c:1960 #, c-format msgid "%s — %d:%02dm" msgstr "%s – %d:%02dm" -#: ../src/empathy-call-window.c:2105 -msgid "On hold" -msgstr "På vent" - #: ../libempathy-gtk/empathy-search-bar.c:243 msgid "_Match case" msgstr "Skill _mellom små/store bokstaver" @@ -2,15 +2,16 @@ # Copyright © 2009 GNOME i18n Project for Vietnamese. # Clytie Siddall <clytie@riverland.net.au>, 2008-2009. # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2009,2011. +# Ngô Chin <ndtrung4419@gmail.com>, 2011. # msgid "" msgstr "" "Project-Id-Version: empathy TRUNK\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=empathy&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-04-07 10:04+0000\n" -"PO-Revision-Date: 2011-04-14 18:58+0700\n" -"Last-Translator: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n" +"product=empathy&keywords=I18N+L10N&component=General\n" +"POT-Creation-Date: 2011-08-03 15:08+0000\n" +"PO-Revision-Date: 2011-08-03 18:28+0700\n" +"Last-Translator: Ngô Chin <ndtrung4419@gmail.com>\n" "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,351 +34,372 @@ msgstr "Trình gửi tin nhắn Empathy" #: ../data/empathy.desktop.in.in.h:4 msgid "IM Client" -msgstr "Trình trò chuyện" +msgstr "Trình nhắn tin nhanh" #: ../data/org.gnome.Empathy.gschema.xml.in.h:1 msgid "Always open a separate chat window for new chats." msgstr "Luôn mở một cửa sổ riêng cho mỗi cuộc trò chuyện mới." #: ../data/org.gnome.Empathy.gschema.xml.in.h:2 +msgid "Call volume" +msgstr "Âm lượng cuộc gọi" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:3 +msgid "Call volume, as a percentage." +msgstr "Âm lượng cuộc gọi, theo phần trăm." + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:4 msgid "" "Character to add after nickname when using nick completion (tab) in group " "chat." msgstr "" -"Ký tự cần thêm vào đẳng sau tên hiệu khi sử dụng chức năng (thẻ) điền nốt " -"tên hiệu trong nhóm trò chuyện." +"Ký tự cần thêm vào sau tên hiệu khi sử dụng chức năng điền nốt tên hiệu " +"(tab) trong nhóm trò chuyện." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:3 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:5 msgid "Chat window theme" msgstr "Sắc thái cửa sổ trò chuyện" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:4 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:6 +msgid "Chat window theme variant" +msgstr "Sắc thái cửa sổ trò chuyện" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:7 msgid "" "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")." msgstr "" -"Danh sách ngôn ngữ để kiểm tra chính tả, cách nhau bằng dấu phẩy (v.d. \"en, " +"Danh sách ngôn ngữ để kiểm tra chính tả, phân cách bằng dấu phẩy (v.d. \"en, " "fr, ja, vi\")." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:5 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:8 msgid "Compact contact list" msgstr "Co lại danh sách liên hệ" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:6 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:9 msgid "Connection managers should be used" -msgstr "Nên dùng trình quản lý mạng" +msgstr "Nên dùng trình quản lý kết nối" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:7 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:10 msgid "Contact list sort criterion" -msgstr "Tiêu chuẩn sắp xếp danh sách liên hệ" +msgstr "Tiêu chuẩn sắp xếp danh sách liên lạc" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:8 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:11 msgid "Default directory to select an avatar image from" -msgstr "Thư mục mặc định từ đó cần chọn một ảnh riêng" +msgstr "Thư mục mặc định để chọn ảnh đại diện" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:9 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:12 msgid "Disable popup notifications when away" msgstr "Không tự mở thông báo khi vắng mặt" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:10 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:13 msgid "Disable sounds when away" msgstr "Tắt âm thanh khi vắng mặt" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:11 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:14 msgid "Display incoming events in the status area" msgstr "Hiện sự kiện đến trong vùng trạng thái" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:12 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:15 msgid "" "Display incoming events in the status area. If false, present them to the " "user immediately." msgstr "" -"Hiện sự kiện đến trong vùng trạng thái. Nếu không, hiện cho người dùng ngay " -"lập tức." +"Hiện sự kiện đến trong vùng trạng thái. Nếu để false, hiện cho người dùng " +"ngay lập tức." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:13 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:16 msgid "Empathy can publish the user's location" msgstr "Empathy được phép công bố vị trí người dùng" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:14 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:17 msgid "Empathy can use the GPS to guess the location" -msgstr "Empathy được phép dùng GPS để đoán vị trí" +msgstr "Empathy được phép dùng GPS để xác định vị trí" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:15 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:18 msgid "Empathy can use the cellular network to guess the location" -msgstr "Empathy được phép dùng mạng di động để đoán vị trí" +msgstr "Empathy được phép dùng mạng di động để xác định vị trí" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:16 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:19 msgid "Empathy can use the network to guess the location" -msgstr "Empathy được phép dùng mạng để đoán vị trí" +msgstr "Empathy được phép dùng mạng để xác định vị trí" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:17 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:20 msgid "Empathy default download folder" msgstr "Thư mục tải về mặc định Empathy" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:18 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:21 msgid "Empathy has migrated butterfly logs" msgstr "Empathy đã chuyển đổi các bản ghi bướm" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:19 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:22 msgid "Empathy should auto-away when idle" -msgstr "Empathy nên tự động đặt vắng mặt khi rảnh" +msgstr "Empathy nên tự động đặt vắng mặt khi không hoạt động" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:20 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:23 msgid "Empathy should auto-connect on startup" msgstr "Trình Empathy nên tự động kết nối khi khởi chạy" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:21 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:24 msgid "Empathy should reduce the location's accuracy" msgstr "Empathy nên giảm độ chính xác vị trí địa lý" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:22 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:25 msgid "Empathy should use the avatar of the contact as the chat window icon" msgstr "" -"Empathy nên dùng ảnh riêng của liên lạc làm biểu tượng cửa sổ trò chuyện" +"Empathy nên dùng ảnh đại diện của liên lạc làm biểu tượng cửa sổ trò chuyện" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:23 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:26 msgid "Enable WebKit Developer Tools" msgstr "Bật bộ công cụ phát triển WebKit" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:24 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:27 msgid "Enable popup notifications for new messages" msgstr "Tự mở thông báo về tin nhắn mới" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:25 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:28 msgid "Enable spell checker" msgstr "Bật kiểm tra chính tả" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:26 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:29 msgid "Hide main window" msgstr "Ẩn cửa sổ chính" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:27 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:30 msgid "Hide the main window." msgstr "Ẩn cửa sổ chính." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:28 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:31 msgid "Nick completed character" msgstr "Ký tự điền nốt tên hiệu" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:29 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:32 msgid "Open new chats in separate windows" msgstr "Mở mỗi cuộc trò chuyện mới trong cửa sổ riêng" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:30 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:33 msgid "Path of the Adium theme to use" msgstr "Đường dẫn đến sắc thái Adium cần dùng" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:31 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:34 msgid "Path of the Adium theme to use if the theme used for chat is Adium." msgstr "Đường dẫn đến sắc thái Adium cần dùng nếu dùng sắc thái Adium." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:32 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:35 msgid "Play a sound for incoming messages" -msgstr "Phát âm thanh khi mới nhận tin nhắn" +msgstr "Phát âm thanh khi nhận tin nhắn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:33 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:36 msgid "Play a sound for new conversations" -msgstr "Phát âm khi cuộc trao đổi bắt đầu" +msgstr "Phát âm thanh khi bắt đầu cuộc trò chuyện mới" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:34 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:37 msgid "Play a sound for outgoing messages" -msgstr "Phát âm thanh khi mới gửi tin nhắn" +msgstr "Phát âm thanh khi gửi tin nhắn" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:35 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:38 msgid "Play a sound when a contact logs in" msgstr "Phát âm thanh khi một liên lạc đăng nhập" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:36 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:39 msgid "Play a sound when a contact logs out" -msgstr "Phát âm khi liên lạc đăng xuất" +msgstr "Phát âm thanh khi một liên lạc đăng xuất" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:37 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:40 msgid "Play a sound when we log in" -msgstr "Phát âm thanh khi mình đăng nhập" +msgstr "Phát âm thanh khi chính bạn đăng nhập" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:38 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:41 msgid "Play a sound when we log out" -msgstr "Phát âm thanh khi mình đăng xuất" +msgstr "Phát âm thanh khi chính bạn đăng xuất" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:39 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:42 msgid "Pop up notifications if the chat isn't focused" msgstr "Tự mở thông báo nếu cửa sổ trò chuyện không có tiêu điểm" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:40 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:43 msgid "Pop up notifications when a contact logs in" msgstr "Thông báo khi bạn bè đăng nhập" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:41 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:44 msgid "Pop up notifications when a contact logs out" msgstr "Thông báo khi bạn bè đăng xuất" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:42 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:45 +msgid "Show Balance in contact list" +msgstr "Hiện số dư tài khoản trong danh sách liên lạc" + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:46 msgid "Show avatars" -msgstr "Hiện ảnh riêng" +msgstr "Hiện ảnh đại diện" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:43 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:47 msgid "Show contact list in rooms" msgstr "Hiện danh sách liên lạc trong phòng" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:44 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:48 msgid "Show hint about closing the main window" -msgstr "Gợi ý về đóng cửa sổ chính" +msgstr "Hiện gợi ý về đóng cửa sổ chính" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:45 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:49 msgid "Show offline contacts" msgstr "Hiện liên lạc ngoại tuyến" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:46 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:50 msgid "Show protocols" msgstr "Hiện giao thức" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:47 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:51 msgid "Spell checking languages" msgstr "Ngôn ngữ kiểm tra chính tả" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:48 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:52 msgid "The default folder to save file transfers in." msgstr "Thư mục mặc định vào đó cần lưu tập tin được truyền đến." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:49 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:53 msgid "The last directory that an avatar image was chosen from." -msgstr "Thư mục cuối cùng từ đó đã chọn một ảnh riêng." +msgstr "Thư mục chứa ảnh đại diện lần trước." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:50 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:54 msgid "The position for the chat window side pane" msgstr "Vị trí khung cửa sổ tán gẫu ở bên" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:51 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:55 msgid "The stored position (in pixels) of the chat window side pane." msgstr "Vị trí được lưu (theo điểm ảnh) của khung cửa sổ tán gẫu ở bên." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:52 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:56 msgid "The theme that is used to display the conversation in chat windows." msgstr "Sắc thái được dùng để hiển thị cuộc đối thoại trong cửa sổ trò chuyện." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:53 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:57 +msgid "" +"The theme variant that is used to display the conversation in chat windows." +msgstr "Sắc thái được dùng để hiển thị cuộc đối thoại trong cửa sổ trò chuyện." + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:58 msgid "Use graphical smileys" msgstr "Dùng biểu tượng xúc cảm" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:54 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:59 msgid "Use notification sounds" msgstr "Dùng âm thanh thông báo" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:55 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:60 msgid "Use theme for chat rooms" msgstr "Dùng sắc thái cho phòng trò chuyện" -#: ../data/org.gnome.Empathy.gschema.xml.in.h:56 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:61 msgid "Whether Empathy can publish the user's location to their contacts." msgstr "Bật/tắt công bố vị trí người dùng với những liên lạc." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:57 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:62 msgid "Whether Empathy can use the GPS to guess the location." -msgstr "Bật/tắt cho phép Empathy dùng GPS để đoán vị trí." +msgstr "Bật/tắt cho phép Empathy dùng GPS để xác định vị trí." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:58 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:63 msgid "Whether Empathy can use the cellular network to guess the location." -msgstr "Bật/tắt cho phép Empathy dùng mạng di động để đoán vị trí." +msgstr "Bật/tắt cho phép Empathy dùng mạng di động để xác định vị trí." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:59 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:64 msgid "Whether Empathy can use the network to guess the location." -msgstr "Bật/tắt cho phép Empathy dùng mạng để đoán vị trí." +msgstr "Bật/tắt cho phép Empathy dùng mạng để xác định vị trí." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:60 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:65 msgid "Whether Empathy has migrated butterfly logs." msgstr "Có để Empathy đã chuyển đổi các bản ghi bướm không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:61 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:66 msgid "Whether Empathy should automatically log into your accounts on startup." msgstr "" -"Empathy có nên tự động đăng nhập vào các tài khoản của bạn vào lúc khởi " -"chạy, hay không." +"Empathy có nên tự động đăng nhập vào các tài khoản của bạn vào lúc khởi chạy " +"hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:62 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:67 msgid "" "Whether Empathy should go into away mode automatically if the user is idle." msgstr "" -"Empathy có nên tự động đăng nhập vào các tài khoản của bạn vào lúc khởi " -"chạy, hay không." +"Empathy có nên tự động đăng nhập vào các tài khoản của bạn vào lúc khởi chạy " +"hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:63 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:68 msgid "" "Whether Empathy should reduce the location's accuracy for privacy reasons." msgstr "Bật/tắt buộc Empathy giảm độ chính xác vị trí vì lý do riêng tư." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:64 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:69 msgid "" "Whether Empathy should use the avatar of the contact as the chat window icon." -msgstr "Dùng ảnh riêng cho liên lạc làm biểu tượng cửa sổ trò chuyện." +msgstr "Dùng ảnh đại diện cho liên lạc làm biểu tượng cửa sổ trò chuyện." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:65 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:70 msgid "" "Whether WebKit developer tools, such as the Web Inspector, should be enabled." msgstr "Bật/tắt bộ công cụ phát triển WebKit, như trình kiểm tra Web." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:66 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:71 msgid "" "Whether connectivity managers should be used to automatically disconnect/" "reconnect." msgstr "Bật/tắt sử dụng trình quản lý kết nối để tự động ngắt/tái kết nối." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:67 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:72 msgid "" "Whether to check words typed against the languages you want to check with." msgstr "Bật/tắt kiểm tra đoạn gõ so với những ngôn ngữ đã chọn hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:68 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:73 msgid "Whether to convert smileys into graphical images in conversations." msgstr "" -"Bật/tắt chuyển đổi ký tự miêu tả mặt cười thành biểu tượng xúc cảm trong đối " -"thoại." +"Bật/tắt chuyển đổi ký tự miêu tả mặt cười thành biểu tượng xúc cảm trong khi " +"trò chuyện." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:69 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:74 msgid "Whether to play a sound to notify of contacts logging into the network." -msgstr "Có nên phát âm thanh báo khi liên lạc đăng nhập vào mạng, hay không." +msgstr "Có nên phát âm thanh báo khi liên lạc đăng nhập vào mạng hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:70 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:75 msgid "" "Whether to play a sound to notify of contacts logging out of the network." -msgstr "Có nên phát âm thanh báo khi liên lạc đăng xuất ra mạng, hay không." +msgstr "Có nên phát âm thanh báo khi liên lạc đăng xuất ra mạng hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:71 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:76 msgid "Whether to play a sound to notify of events." -msgstr "Có nên phát âm thanh báo khi sự kiện xảy ra, hay không." +msgstr "Có nên phát âm thanh báo khi sự kiện xảy ra hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:72 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:77 msgid "Whether to play a sound to notify of incoming messages." -msgstr "Có nên phát âm thanh báo khi nhận được tin nhắn, hay không." +msgstr "Có nên phát âm thanh báo khi nhận được tin nhắn hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:73 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:78 msgid "Whether to play a sound to notify of new conversations." -msgstr "Có nên phát âm thanh báo khi nhận được cuộc đối thoại mới, hay không." +msgstr "Có nên phát âm thanh báo khi nhận được cuộc trò chuyện mới hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:74 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:79 msgid "Whether to play a sound to notify of outgoing messages." -msgstr "Có nên phát âm thanh báo khi gửi tin nhắn, hay không." +msgstr "Có nên phát âm thanh báo khi gửi tin nhắn hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:75 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:80 msgid "Whether to play a sound when logging into a network." -msgstr "Có nên phát âm thanh báo khi đăng nhập vào một mạng, hay không." +msgstr "Có nên phát âm thanh báo khi đăng nhập vào một mạng hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:76 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:81 msgid "Whether to play a sound when logging out of a network." -msgstr "Có nên phát âm thanh báo khi đăng xuất ra một mạng, hay không." +msgstr "Có nên phát âm thanh báo khi đăng xuất ra một mạng hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:77 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:82 msgid "Whether to play sound notifications when away or busy." msgstr "Bật/tắt phát âm thanh thông báo khi vắng mặt hoặc bận." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:78 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:83 msgid "Whether to show a popup notification when a contact goes offline." msgstr "Bật/tắt thông báo khi một liên lạc ngoại tuyén." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:79 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:84 msgid "Whether to show a popup notification when a contact goes online." msgstr "Bật tắt thông báo khi một liên lạc trực tuyến." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:80 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:85 msgid "" "Whether to show a popup notification when receiving a new message even if " "the chat is already opened, but not focused." @@ -385,50 +407,54 @@ msgstr "" "Có nên hiển thị hay không một thông báo tự mở khi nhận một tin nhắn mới, " "ngay cả nếu cửa sổ trò chuyện đã mở nhưng không có tiêu điểm." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:81 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:86 msgid "Whether to show a popup notification when receiving a new message." -msgstr "Có nên phát âm thanh báo khi nhận được một tin nhắn mới, hay không." +msgstr "Có nên phát âm thanh báo khi nhận được một tin nhắn mới hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:82 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:87 +msgid "Whether to show account balances in the contact list." +msgstr "Chọn có hiện số dư tài khoản trong danh sách liên lạc hay không." + +#: ../data/org.gnome.Empathy.gschema.xml.in.h:88 msgid "" "Whether to show avatars for contacts in the contact list and chat windows." msgstr "" "Bật/tắt hiển thị ảnh riêng cho liên lạc trong danh sách liên lạc và cửa sổ " "trò chuyện." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:83 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:89 msgid "Whether to show contacts that are offline in the contact list." msgstr "Bật/tắt hiện danh sách ngoại tuyến trong danh sách liên lạc." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:84 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:90 msgid "Whether to show popup notifications when away or busy." -msgstr "Có nên phát âm thanh báo khi vắng mặt hay bận, hay không." +msgstr "Có nên phát âm thanh báo khi vắng mặt/bận hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:85 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:91 msgid "Whether to show protocols for contacts in the contact list." msgstr "Bật/tắt hiển thị giao thức trong danh sách liên lạc." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:86 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:92 msgid "Whether to show the contact list in chat rooms." msgstr "Bật/tắt hiển thị danh sách liên lạc trong phòng tán gẫu." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:87 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:93 msgid "Whether to show the contact list in compact mode." msgstr "Bật/tắt danh sách liên lạc ở chế độ tóm gọn." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:88 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:94 msgid "" "Whether to show the message dialog about closing the main window with the " "'x' button in the title bar." msgstr "" -"Bật/tắt hiển thị hộp thoại thông điệp về việc đóng cửa sổ chính bằng cái nút " -"« x » trên thanh tựa đề hay không." +"Có hiển thị hộp thoại thông điệp về việc đóng cửa sổ chính bằng nút \"x\" " +"trên thanh tựa đề hay không." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:89 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:95 msgid "Whether to use the theme for chat rooms." msgstr "Bật/tắt dùng sắc thái cho phòng trò chuyện." -#: ../data/org.gnome.Empathy.gschema.xml.in.h:90 +#: ../data/org.gnome.Empathy.gschema.xml.in.h:96 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 " @@ -444,7 +470,7 @@ msgstr "Quản lý tài khoản tin nhắn và VoIP" #. Tweak the dialog #: ../data/empathy-accounts.desktop.in.in.h:2 -#: ../src/empathy-accounts-dialog.c:2269 +#: ../src/empathy-accounts-dialog.c:2324 msgid "Messaging and VoIP Accounts" msgstr "Tài khoản tin nhắn và VoIP" @@ -464,6 +490,22 @@ msgstr "Tập tin được chọn không phải tập tin bình thường" msgid "The selected file is empty" msgstr "Tập tin được chọn là tập tin rỗng" +#: ../libempathy/empathy-message.c:413 ../src/empathy-call-observer.c:132 +#, c-format +msgid "Missed call from %s" +msgstr "Nhỡ cuộc gọi từ %s" + +#. Translators: this is an outgoing call, e.g. 'Called Alice' +#: ../libempathy/empathy-message.c:417 +#, c-format +msgid "Called %s" +msgstr "Gọi cho %s" + +#: ../libempathy/empathy-message.c:420 +#, c-format +msgid "Call from %s" +msgstr "Cuộc gọi từ %s" + #: ../libempathy/empathy-tp-file.c:268 msgid "Socket type not supported" msgstr "Kiểu socket không hỗ trợ" @@ -492,147 +534,140 @@ msgstr "Gặp lỗi trong khi thử truyền tập tin đó" msgid "The other participant is unable to transfer the file" msgstr "Người dự khác không thể truyền tập tin đó" -#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:383 +#: ../libempathy/empathy-tp-file.c:405 ../libempathy/empathy-utils.c:292 msgid "Unknown reason" msgstr "Lỗi không rõ" -#: ../libempathy/empathy-utils.c:304 +#: ../libempathy/empathy-utils.c:212 msgid "Available" msgstr "Có mặt" -#: ../libempathy/empathy-utils.c:306 +#: ../libempathy/empathy-utils.c:214 msgid "Busy" msgstr "Bận" -#: ../libempathy/empathy-utils.c:309 +#: ../libempathy/empathy-utils.c:217 msgid "Away" msgstr "Vắng mặt" -#: ../libempathy/empathy-utils.c:311 +#: ../libempathy/empathy-utils.c:219 msgid "Invisible" msgstr "Vô hình" -#: ../libempathy/empathy-utils.c:313 +#: ../libempathy/empathy-utils.c:221 msgid "Offline" msgstr "Ngoại tuyến" #. translators: presence type is unknown -#. translators: encoding video codec is unknown -#. translators: encoding audio codec is unknown -#. translators: decoding video codec is unknown -#. translators: decoding audio codec is unknown -#: ../libempathy/empathy-utils.c:316 -#: ../src/empathy-streamed-media-window.c:1905 -#: ../src/empathy-streamed-media-window.c:1907 -#: ../src/empathy-streamed-media-window.c:1909 -#: ../src/empathy-streamed-media-window.c:1911 -#: ../src/empathy-call-window.ui.h:18 +#: ../libempathy/empathy-utils.c:224 +msgctxt "presence" msgid "Unknown" msgstr "Không rõ" -#: ../libempathy/empathy-utils.c:355 +#: ../libempathy/empathy-utils.c:264 msgid "No reason specified" msgstr "Không cung cấp lý do" -#: ../libempathy/empathy-utils.c:357 ../libempathy/empathy-utils.c:413 +#: ../libempathy/empathy-utils.c:266 ../libempathy/empathy-utils.c:322 msgid "Status is set to offline" msgstr "Trạng thái được đặt là ngoại tuyến" -#: ../libempathy/empathy-utils.c:359 ../libempathy/empathy-utils.c:393 +#: ../libempathy/empathy-utils.c:268 ../libempathy/empathy-utils.c:302 +#: ../libempathy-gtk/empathy-call-utils.c:47 msgid "Network error" msgstr "Lỗi mạng" -#: ../libempathy/empathy-utils.c:361 ../libempathy/empathy-utils.c:395 +#: ../libempathy/empathy-utils.c:270 ../libempathy/empathy-utils.c:304 msgid "Authentication failed" msgstr "Lỗi xác thực" -#: ../libempathy/empathy-utils.c:363 ../libempathy/empathy-utils.c:397 +#: ../libempathy/empathy-utils.c:272 ../libempathy/empathy-utils.c:306 msgid "Encryption error" msgstr "Lỗi mật mã" -#: ../libempathy/empathy-utils.c:365 +#: ../libempathy/empathy-utils.c:274 msgid "Name in use" msgstr "Tên đang được dùng" -#: ../libempathy/empathy-utils.c:367 ../libempathy/empathy-utils.c:399 +#: ../libempathy/empathy-utils.c:276 ../libempathy/empathy-utils.c:308 msgid "Certificate not provided" msgstr "Chứng nhận không được cung cấp" -#: ../libempathy/empathy-utils.c:369 ../libempathy/empathy-utils.c:401 +#: ../libempathy/empathy-utils.c:278 ../libempathy/empathy-utils.c:310 msgid "Certificate untrusted" msgstr "Chứng nhận không đáng tin" -#: ../libempathy/empathy-utils.c:371 ../libempathy/empathy-utils.c:403 +#: ../libempathy/empathy-utils.c:280 ../libempathy/empathy-utils.c:312 msgid "Certificate expired" -msgstr "Chứng nhận đã hết hạn dùng" +msgstr "Chứng nhận đã hết hạn" -#: ../libempathy/empathy-utils.c:373 ../libempathy/empathy-utils.c:405 +#: ../libempathy/empathy-utils.c:282 ../libempathy/empathy-utils.c:314 msgid "Certificate not activated" msgstr "Chứng nhận không được kích hoạt" -#: ../libempathy/empathy-utils.c:375 ../libempathy/empathy-utils.c:407 +#: ../libempathy/empathy-utils.c:284 ../libempathy/empathy-utils.c:316 msgid "Certificate hostname mismatch" msgstr "Tên máy của chứng nhận không tương ứng" -#: ../libempathy/empathy-utils.c:377 ../libempathy/empathy-utils.c:409 +#: ../libempathy/empathy-utils.c:286 ../libempathy/empathy-utils.c:318 msgid "Certificate fingerprint mismatch" msgstr "Vân tay của chứng nhận không tương ứng" -#: ../libempathy/empathy-utils.c:379 ../libempathy/empathy-utils.c:411 +#: ../libempathy/empathy-utils.c:288 ../libempathy/empathy-utils.c:320 msgid "Certificate self-signed" msgstr "Chứng nhận tự ký" -#: ../libempathy/empathy-utils.c:381 +#: ../libempathy/empathy-utils.c:290 msgid "Certificate error" msgstr "Lỗi chứng nhận" -#: ../libempathy/empathy-utils.c:415 +#: ../libempathy/empathy-utils.c:324 msgid "Encryption is not available" msgstr "Không hỗ trợ mã hoá" -#: ../libempathy/empathy-utils.c:417 +#: ../libempathy/empathy-utils.c:326 msgid "Certificate is invalid" msgstr "Chứng nhận không hợp lệ" -#: ../libempathy/empathy-utils.c:419 +#: ../libempathy/empathy-utils.c:328 msgid "Connection has been refused" msgstr "Kết nối bị từ chối" -#: ../libempathy/empathy-utils.c:421 +#: ../libempathy/empathy-utils.c:330 msgid "Connection can't be established" msgstr "Không thể thiết lập kết nối" -#: ../libempathy/empathy-utils.c:423 +#: ../libempathy/empathy-utils.c:332 msgid "Connection has been lost" msgstr "Kết nối bị đứt" -#: ../libempathy/empathy-utils.c:425 +#: ../libempathy/empathy-utils.c:334 msgid "This resource is already connected to the server" msgstr "Tài nguyên này đã được kết nối đến máy chủ" -#: ../libempathy/empathy-utils.c:427 +#: ../libempathy/empathy-utils.c:336 msgid "" "Connection has been replaced by a new connection using the same resource" msgstr "Kết nối bị thay bằng một kết nối mới dùng cùng tài nguyên" -#: ../libempathy/empathy-utils.c:430 +#: ../libempathy/empathy-utils.c:339 msgid "The account already exists on the server" msgstr "Tài khoản này đã có trên máy chủ" -#: ../libempathy/empathy-utils.c:432 +#: ../libempathy/empathy-utils.c:341 msgid "Server is currently too busy to handle the connection" msgstr "Máy chủ đang bận không thể xử lý kết nối" -#: ../libempathy/empathy-utils.c:434 +#: ../libempathy/empathy-utils.c:343 msgid "Certificate has been revoked" msgstr "Chứng nhận bị thu hồi" -#: ../libempathy/empathy-utils.c:436 +#: ../libempathy/empathy-utils.c:345 msgid "" "Certificate uses an insecure cipher algorithm or is cryptographically weak" msgstr "Chứng nhận dùng mật mã yếu hoặc không an toàn" -#: ../libempathy/empathy-utils.c:439 +#: ../libempathy/empathy-utils.c:348 msgid "" "The length of the server certificate, or the depth of the server certificate " "chain, exceed the limits imposed by the cryptography library" @@ -640,146 +675,128 @@ msgstr "" "Độ dài chứng nhận máy chủ, hoặc độ sâu chuỗi chứng nhận, vượt quá giới hạn " "của thư viện mật mã" -#: ../libempathy/empathy-utils.c:602 +#: ../libempathy/empathy-utils.c:509 #: ../libempathy-gtk/empathy-contact-list-store.h:73 msgid "People Nearby" msgstr "Người chung quanh" -#: ../libempathy/empathy-utils.c:607 +#: ../libempathy/empathy-utils.c:514 msgid "Yahoo! Japan" msgstr "Yahoo! Nhật Bản" -#: ../libempathy/empathy-utils.c:636 +#: ../libempathy/empathy-utils.c:543 msgid "Google Talk" msgstr "Google Talk" -#: ../libempathy/empathy-utils.c:637 +#: ../libempathy/empathy-utils.c:544 msgid "Facebook Chat" -msgstr "Tán gẫu Facebook" +msgstr "Facebook Chat" -#: ../libempathy/empathy-time.c:137 +#: ../libempathy/empathy-time.c:88 #, c-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d giây trước" -#: ../libempathy/empathy-time.c:142 +#: ../libempathy/empathy-time.c:93 #, c-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d phút trước" -#: ../libempathy/empathy-time.c:147 +#: ../libempathy/empathy-time.c:98 #, c-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d giờ trước" -#: ../libempathy/empathy-time.c:152 +#: ../libempathy/empathy-time.c:103 #, c-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d ngày trước" -#: ../libempathy/empathy-time.c:157 +#: ../libempathy/empathy-time.c:108 #, c-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d tuần trước" -#: ../libempathy/empathy-time.c:162 +#: ../libempathy/empathy-time.c:113 #, c-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d tháng trước" -#: ../libempathy/empathy-time.c:167 +#: ../libempathy/empathy-time.c:136 msgid "in the future" msgstr "trong tương lai" -#: ../libempathy-gtk/empathy-account-chooser.c:491 -msgid "All" -msgstr "Tất cả" +#: ../libempathy-gtk/empathy-account-chooser.c:539 +msgid "All accounts" +msgstr "Mọi tài khoản" -#: ../libempathy-gtk/empathy-account-widget.c:682 -#: ../libempathy-gtk/empathy-log-window.c:643 +#: ../libempathy-gtk/empathy-account-widget.c:691 #: ../src/empathy-import-widget.c:321 msgid "Account" msgstr "Tài khoản" -#: ../libempathy-gtk/empathy-account-widget.c:683 +#: ../libempathy-gtk/empathy-account-widget.c:692 msgid "Password" msgstr "Mật khẩu" -#: ../libempathy-gtk/empathy-account-widget.c:684 +#: ../libempathy-gtk/empathy-account-widget.c:693 #: ../libempathy-gtk/empathy-irc-network-dialog.c:507 msgid "Server" msgstr "Máy phục vụ" -#: ../libempathy-gtk/empathy-account-widget.c:685 +#: ../libempathy-gtk/empathy-account-widget.c:694 #: ../libempathy-gtk/empathy-irc-network-dialog.c:522 msgid "Port" msgstr "Cổng" -#: ../libempathy-gtk/empathy-account-widget.c:757 -#: ../libempathy-gtk/empathy-account-widget.c:814 +#: ../libempathy-gtk/empathy-account-widget.c:766 +#: ../libempathy-gtk/empathy-account-widget.c:823 #, c-format msgid "%s:" msgstr "%s:" -#: ../libempathy-gtk/empathy-account-widget.c:1166 +#: ../libempathy-gtk/empathy-account-widget.c:1164 #, c-format msgid "The account %s is edited via My Web Accounts." msgstr "Tài khoản %s bị sửa bởi My Web Accounts." -#: ../libempathy-gtk/empathy-account-widget.c:1172 +#: ../libempathy-gtk/empathy-account-widget.c:1170 #, c-format msgid "The account %s cannot be edited in Empathy." msgstr "Không thể sửa tài khoản %s bằng Empathy." -#: ../libempathy-gtk/empathy-account-widget.c:1192 +#: ../libempathy-gtk/empathy-account-widget.c:1190 msgid "Launch My Web Accounts" msgstr "Chạy May Web Accounts" #: ../libempathy-gtk/empathy-account-widget.c:1530 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:11 msgid "Username:" msgstr "Tên người dùng:" -#: ../libempathy-gtk/empathy-account-widget.c:1897 +#: ../libempathy-gtk/empathy-account-widget.c:1848 msgid "A_pply" msgstr "Á_p dụng" -#: ../libempathy-gtk/empathy-account-widget.c:1927 +#: ../libempathy-gtk/empathy-account-widget.c:1878 msgid "L_og in" msgstr "Đăng _nhập" -#. Account and Identifier -#: ../libempathy-gtk/empathy-account-widget.c:1993 -#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1 -#: ../libempathy-gtk/empathy-contact-search-dialog.c:520 -#: ../libempathy-gtk/empathy-contact-widget.ui.h:2 -#: ../libempathy-gtk/empathy-individual-widget.c:1481 -#: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1 -#: ../src/empathy-chatrooms-window.ui.h:1 -#: ../src/empathy-new-chatroom-dialog.ui.h:1 -msgid "Account:" -msgstr "Tài khoản:" - -#. translators: this is the label of a checkbox used to enable/disable IM -#. * accounts -#: ../libempathy-gtk/empathy-account-widget.c:2006 -msgid "_Enabled" -msgstr "_Bật" - -#: ../libempathy-gtk/empathy-account-widget.c:2071 +#: ../libempathy-gtk/empathy-account-widget.c:1952 msgid "This account already exists on the server" msgstr "Tài khoản này đã có trên máy chủ" -#: ../libempathy-gtk/empathy-account-widget.c:2074 +#: ../libempathy-gtk/empathy-account-widget.c:1955 msgid "Create a new account on the server" msgstr "Tạo tài khoản mới trên máy chủ" -#: ../libempathy-gtk/empathy-account-widget.c:2266 +#: ../libempathy-gtk/empathy-account-widget.c:2147 msgid "Ca_ncel" msgstr "T_hôi" @@ -788,19 +805,19 @@ msgstr "T_hôi" #. * 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:2563 +#: ../libempathy-gtk/empathy-account-widget.c:2425 #, c-format msgid "%1$s on %2$s" msgstr "%1$s trên %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:2589 +#: ../libempathy-gtk/empathy-account-widget.c:2451 #, c-format msgid "%s Account" msgstr "Tài khoản %s" -#: ../libempathy-gtk/empathy-account-widget.c:2593 +#: ../libempathy-gtk/empathy-account-widget.c:2455 msgid "New account" msgstr "Tài khoản mới" @@ -812,6 +829,7 @@ msgstr "<b>Ví dụ:</b> TênHiểnThị" #: ../libempathy-gtk/empathy-account-widget-generic.ui.h:1 #: ../libempathy-gtk/empathy-account-widget-groupwise.ui.h:2 #: ../libempathy-gtk/empathy-account-widget-icq.ui.h:2 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1 #: ../libempathy-gtk/empathy-account-widget-jabber.ui.h:3 #: ../libempathy-gtk/empathy-account-widget-msn.ui.h:2 #: ../libempathy-gtk/empathy-account-widget-local-xmpp.ui.h:1 @@ -825,7 +843,7 @@ msgstr "Cao cấp" #: ../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 "Mật khẩ_u:" @@ -835,7 +853,7 @@ msgstr "Mật khẩ_u:" #: ../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 "Nhớ mật khẩu" @@ -845,7 +863,7 @@ msgstr "Nhớ mật khẩu" #: ../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" @@ -921,76 +939,84 @@ msgstr "UIN ICQ của bạn là gì?" msgid "What is your ICQ password?" msgstr "Mật khẩu ICQ của bạn là gì?" -#: ../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 "Tự động" -#: ../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 "Đăng ký" #. 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 "Tuỳ chọn" -#: ../libempathy-gtk/empathy-account-widget-sip.c:229 +#: ../libempathy-gtk/empathy-account-widget-sip.c:230 msgid "None" msgstr "Không" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:1 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2 msgid "Character set:" msgstr "Bảng mã:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:2 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Phần lớn các máy chủ IRC không yêu cầu mật khẩu nên nếu bạn không chắc chắn " +"thì đừng nhập mật khẩu vào đây." + +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4 msgid "Network" msgstr "Mạng" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:3 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5 msgid "Network:" msgstr "Mạng:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:4 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6 msgid "Nickname:" msgstr "Biệt hiệu:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:5 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7 msgid "Password:" msgstr "Mật khẩu:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:6 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8 msgid "Quit message:" msgstr "Thông điệp thoát:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:7 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9 msgid "Real name:" msgstr "Tên thật:" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:8 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10 msgid "Servers" msgstr "Máy phục vụ" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:9 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:12 msgid "What is your IRC nickname?" msgstr "Biệt hiệu IRC của bạn là gì?" -#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:10 +#: ../libempathy-gtk/empathy-account-widget-irc.ui.h:13 msgid "Which IRC network?" msgstr "Mạng IRC nào?" @@ -1124,58 +1150,63 @@ msgid "Discover the STUN server automatically" msgstr "Tự động phát hiện máy chủ STUN" #: ../libempathy-gtk/empathy-account-widget-sip.ui.h:6 +msgid "Ignore TLS Errors" +msgstr "Bỏ qua lỗi TLS" + +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7 msgid "Interval (seconds)" msgstr "Khoảng lặp (giây)" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:7 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8 msgid "Keep-Alive Options" msgstr "Tuỳ chọn Keep-Alive (giữ kết nối)" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:8 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9 msgid "Loose Routing" msgstr "Định tuyến lỏng lẻo" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:9 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10 msgid "Mechanism:" msgstr "Cơ chế:" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:10 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11 msgid "Miscellaneous Options" msgstr "Tuỳ chọn linh tinh" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:11 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:12 msgid "NAT Traversal Options" msgstr "Tuỳ chọn vượt NAT" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:13 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14 msgid "Port:" msgstr "Cổng:" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:14 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:15 msgid "Proxy Options" msgstr "Tuỳ chọn uỷ nhiệm" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:17 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:18 msgid "STUN Server:" msgstr "Máy chủ 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 "Máy phục vụ:" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:19 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:20 msgid "Transport:" msgstr "Phương tiện:" -#: ../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 "Mật khẩu SIP của bạn là gì?" -#: ../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 "ID đăng nhập SIP của bạn là gì?" -#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:22 +#: ../libempathy-gtk/empathy-account-widget-sip.ui.h:23 msgid "_Username:" msgstr "Tên người _dùng:" @@ -1199,28 +1230,36 @@ msgstr "I_D Yahoo!:" msgid "_Room List locale:" msgstr "_Miền địa phương danh sách phòng:" -#: ../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 "Không thể chuyển đổi ảnh" -#: ../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 "Không có định dạng ảnh được hỗ trợ nào trên hệ thống này" -#: ../libempathy-gtk/empathy-avatar-chooser.c:930 +#: ../libempathy-gtk/empathy-avatar-chooser.c:822 +msgid "Couldn't save pixbuf to png" +msgstr "Không thể lưu pixbuf thành tập tin ảnh png" + +#: ../libempathy-gtk/empathy-avatar-chooser.c:938 msgid "Select Your Avatar Image" msgstr "Chọn ảnh riêng" -#: ../libempathy-gtk/empathy-avatar-chooser.c:933 +#: ../libempathy-gtk/empathy-avatar-chooser.c:942 +msgid "Take a picture..." +msgstr "Chụp hình..." + +#: ../libempathy-gtk/empathy-avatar-chooser.c:945 msgid "No Image" -msgstr "Không ảnh" +msgstr "Không có ảnh" -#: ../libempathy-gtk/empathy-avatar-chooser.c:995 +#: ../libempathy-gtk/empathy-avatar-chooser.c:1005 msgid "Images" msgstr "Ảnh" -#: ../libempathy-gtk/empathy-avatar-chooser.c:999 +#: ../libempathy-gtk/empathy-avatar-chooser.c:1009 msgid "All Files" msgstr "Mọi tập tin" @@ -1228,35 +1267,61 @@ msgstr "Mọi tập tin" msgid "Click to enlarge" msgstr "Nhấn để phóng to" -#: ../libempathy-gtk/empathy-chat.c:652 +#: ../libempathy-gtk/empathy-call-utils.c:42 +#: ../libempathy-gtk/empathy-call-utils.c:58 +msgid "There was an error starting the call" +msgstr "Không thể bắt đầu cuộc gọi" + +#: ../libempathy-gtk/empathy-call-utils.c:49 +msgid "The specified contact doesn't support calls" +msgstr "Liên lạc này không hỗ trợ gọi điện" + +#: ../libempathy-gtk/empathy-call-utils.c:51 +msgid "The specified contact is offline" +msgstr "Liên lạc này đã ngoại tuyến." + +#: ../libempathy-gtk/empathy-call-utils.c:53 +msgid "The specified contact is not valid" +msgstr "Liên lạc này không hợp lệ" + +#: ../libempathy-gtk/empathy-call-utils.c:55 +msgid "Emergency calls are not supported on this protocol" +msgstr "Giao thức này không hỗ trợ cuộc gọi khẩn cấp" + +#: ../libempathy-gtk/empathy-chat.c:702 msgid "Failed to open private chat" msgstr "Lỗi mở trò chuyện riêng tư" -#: ../libempathy-gtk/empathy-chat.c:717 +#: ../libempathy-gtk/empathy-chat.c:763 msgid "Topic not supported on this conversation" msgstr "Chủ đề không được hỗ trợ trong cuộc trò chuyện này" -#: ../libempathy-gtk/empathy-chat.c:723 +#: ../libempathy-gtk/empathy-chat.c:769 msgid "You are not allowed to change the topic" msgstr "Bạn không được phép thay đổi chủ đề trò chuyện" -#: ../libempathy-gtk/empathy-chat.c:930 +#: ../libempathy-gtk/empathy-chat.c:973 +#, c-format +msgid "“%s” is not a valid contact ID" +msgstr "\"%s\" không phải là ID hợp lệ" + +#: ../libempathy-gtk/empathy-chat.c:1030 msgid "/clear: clear all messages from the current conversation" msgstr "/clear: xoá mọi trao đổi trong cuộc trò chuyện hiện thời" -#: ../libempathy-gtk/empathy-chat.c:933 +#: ../libempathy-gtk/empathy-chat.c:1033 msgid "/topic <topic>: set the topic of the current conversation" msgstr "/topic <chủ đề>: đặt chủ đề cho cuộc trò chuyện hiện thời" -#: ../libempathy-gtk/empathy-chat.c:936 +#: ../libempathy-gtk/empathy-chat.c:1036 msgid "/join <chat room ID>: join a new chat room" msgstr "/join <id phòng trò chuyện>: tham gia phòng trò chuyện mới" -#: ../libempathy-gtk/empathy-chat.c:939 +#: ../libempathy-gtk/empathy-chat.c:1039 msgid "/j <chat room ID>: join a new chat room" msgstr "/j <id phòng trò chuyện>: tham gia phòng trò chuyện mới" -#: ../libempathy-gtk/empathy-chat.c:944 +#: ../libempathy-gtk/empathy-chat.c:1043 msgid "" "/part [<chat room ID>] [<reason>]: leave the chat room, by default the " "current one" @@ -1264,25 +1329,25 @@ msgstr "" "/part [<ID phòng trò chuyện>] [<lý do>]: rời phòng (mặc định là phòng hiện " "thời)" -#: ../libempathy-gtk/empathy-chat.c:949 +#: ../libempathy-gtk/empathy-chat.c:1047 msgid "/query <contact ID> [<message>]: open a private chat" msgstr "/query <id liên lạc> [<thông điệp>]: mở trò chuyện riêng tư" -#: ../libempathy-gtk/empathy-chat.c:952 +#: ../libempathy-gtk/empathy-chat.c:1050 msgid "/msg <contact ID> <message>: open a private chat" msgstr "/msg <id liên lạc> <thông điệp>: mở trò chuyện riêng tư" -#: ../libempathy-gtk/empathy-chat.c:955 +#: ../libempathy-gtk/empathy-chat.c:1053 msgid "/nick <nickname>: change your nickname on the current server" msgstr "/nick <biệt hiệu>: đổi biệt hiệu của bạn trên máy chủ hiện thời" -#: ../libempathy-gtk/empathy-chat.c:958 +#: ../libempathy-gtk/empathy-chat.c:1056 msgid "/me <message>: send an ACTION message to the current conversation" msgstr "" "/me <thông điệp>: gửi thông điệp ACTION (hành động) đến cuộc trò chuyện hiện " "thời" -#: ../libempathy-gtk/empathy-chat.c:961 +#: ../libempathy-gtk/empathy-chat.c:1059 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 " @@ -1292,105 +1357,124 @@ msgstr "" "gửi thông điệp bắt đầu bằng '/'. Ví dụ \"/sau /join được dùng để tham gia " "phòng trò chuyện\"" -#: ../libempathy-gtk/empathy-chat.c:966 +#: ../libempathy-gtk/empathy-chat.c:1064 +msgid "/whois <contact ID>: display information about a contact" +msgstr "/whois <ID liên lạc>: hiện thông tin về một liên lạc" + +#: ../libempathy-gtk/empathy-chat.c:1067 msgid "" "/help [<command>]: show all supported commands. If <command> is defined, " "show its usage." msgstr "" "/help [<lệnh>]: hiện mọi lệnh hỗ trợ. Nếu có <lệnh> thì hiện cách sử dụng." -#: ../libempathy-gtk/empathy-chat.c:976 +#: ../libempathy-gtk/empathy-chat.c:1077 #, c-format msgid "Usage: %s" msgstr "Cách dùng: %s" -#: ../libempathy-gtk/empathy-chat.c:1015 +#: ../libempathy-gtk/empathy-chat.c:1116 msgid "Unknown command" msgstr "Lệnh lạ" -#: ../libempathy-gtk/empathy-chat.c:1141 +#: ../libempathy-gtk/empathy-chat.c:1242 msgid "Unknown command; see /help for the available commands" msgstr "Lệnh lạ, xem /help để biết danh sách lệnh có thể dùng" -#: ../libempathy-gtk/empathy-chat.c:1278 +#. translators: error used when user doesn't have enough credit on his +#. * account to send the message. +#: ../libempathy-gtk/empathy-chat.c:1412 +msgid "insufficient balance to send message" +msgstr "Không đủ số dư tài khoản để gửi tin nhắn" + +#: ../libempathy-gtk/empathy-chat.c:1414 +msgid "not capable" +msgstr "không thể" + +#: ../libempathy-gtk/empathy-chat.c:1421 msgid "offline" msgstr "ngoại tuyến" -#: ../libempathy-gtk/empathy-chat.c:1281 +#: ../libempathy-gtk/empathy-chat.c:1424 msgid "invalid contact" msgstr "liên lạc không hợp lệ" -#: ../libempathy-gtk/empathy-chat.c:1284 +#: ../libempathy-gtk/empathy-chat.c:1427 msgid "permission denied" msgstr "không đủ quyền truy cập" -#: ../libempathy-gtk/empathy-chat.c:1287 +#: ../libempathy-gtk/empathy-chat.c:1430 msgid "too long message" msgstr "tin nhắn quá dài" -#: ../libempathy-gtk/empathy-chat.c:1290 +#: ../libempathy-gtk/empathy-chat.c:1433 msgid "not implemented" msgstr "chưa được thực hiện" -#: ../libempathy-gtk/empathy-chat.c:1294 +#: ../libempathy-gtk/empathy-chat.c:1437 msgid "unknown" msgstr "không rõ" -#: ../libempathy-gtk/empathy-chat.c:1298 +#: ../libempathy-gtk/empathy-chat.c:1443 #, c-format msgid "Error sending message '%s': %s" -msgstr "Gặp lỗi khi gửi tin nhắn « %s »: %s" +msgstr "Gặp lỗi khi gửi tin nhắn '%s': %s" -#: ../libempathy-gtk/empathy-chat.c:1359 ../src/empathy-chat-window.c:717 +#: ../libempathy-gtk/empathy-chat.c:1447 +#, c-format +msgid "Error sending message: %s" +msgstr "Không thể gửi tin nhắn: %s" + +#: ../libempathy-gtk/empathy-chat.c:1508 ../src/empathy-chat-window.c:760 msgid "Topic:" msgstr "Chủ đề:" -#: ../libempathy-gtk/empathy-chat.c:1371 +#: ../libempathy-gtk/empathy-chat.c:1520 #, c-format msgid "Topic set to: %s" msgstr "Chủ đề được đặt thành: %s" -#: ../libempathy-gtk/empathy-chat.c:1373 +#: ../libempathy-gtk/empathy-chat.c:1522 msgid "No topic defined" msgstr "Chưa xác định chủ đề" -#: ../libempathy-gtk/empathy-chat.c:1872 +#: ../libempathy-gtk/empathy-chat.c:2031 msgid "(No Suggestions)" msgstr "(Không có gợi ý)" #. translators: %s is the selected word -#: ../libempathy-gtk/empathy-chat.c:1940 +#: ../libempathy-gtk/empathy-chat.c:2099 #, c-format msgid "Add '%s' to Dictionary" msgstr "Thêm '%s' vào từ điển" #. translators: first %s is the selected word, #. * second %s is the language name of the target dictionary -#: ../libempathy-gtk/empathy-chat.c:1977 +#: ../libempathy-gtk/empathy-chat.c:2136 #, c-format msgid "Add '%s' to %s Dictionary" msgstr "Thêm '%s' vào từ điển %s" -#: ../libempathy-gtk/empathy-chat.c:2034 +#: ../libempathy-gtk/empathy-chat.c:2206 msgid "Insert Smiley" msgstr "Chèn hình cười" #. send button -#: ../libempathy-gtk/empathy-chat.c:2052 -#: ../libempathy-gtk/empathy-ui-utils.c:1808 +#: ../libempathy-gtk/empathy-chat.c:2224 +#: ../libempathy-gtk/empathy-ui-utils.c:1757 msgid "_Send" msgstr "_Gửi" #. Spelling suggestions -#: ../libempathy-gtk/empathy-chat.c:2087 +#: ../libempathy-gtk/empathy-chat.c:2278 msgid "_Spelling Suggestions" msgstr "_Gợi ý chính tả" -#: ../libempathy-gtk/empathy-chat.c:2176 +#: ../libempathy-gtk/empathy-chat.c:2367 msgid "Failed to retrieve recent logs" msgstr "Lỗi nhận bản ghi gần đây" -#: ../libempathy-gtk/empathy-chat.c:2287 +#: ../libempathy-gtk/empathy-chat.c:2504 #, c-format msgid "%s has disconnected" msgstr "%s đã ngắt kết nối" @@ -1398,12 +1482,12 @@ msgstr "%s đã ngắt kết nối" #. translators: reverse the order of these arguments #. * if the kicked should come before the kicker in your locale. #. -#: ../libempathy-gtk/empathy-chat.c:2294 +#: ../libempathy-gtk/empathy-chat.c:2511 #, c-format msgid "%1$s was kicked by %2$s" msgstr "%2$s đã đá văng %1$s" -#: ../libempathy-gtk/empathy-chat.c:2297 +#: ../libempathy-gtk/empathy-chat.c:2514 #, c-format msgid "%s was kicked" msgstr "%s đã bị đá" @@ -1411,17 +1495,17 @@ msgstr "%s đã bị đá" #. translators: reverse the order of these arguments #. * if the banned should come before the banner in your locale. #. -#: ../libempathy-gtk/empathy-chat.c:2305 +#: ../libempathy-gtk/empathy-chat.c:2522 #, c-format msgid "%1$s was banned by %2$s" msgstr "%2$s đã cấm %1$s" -#: ../libempathy-gtk/empathy-chat.c:2308 +#: ../libempathy-gtk/empathy-chat.c:2525 #, c-format msgid "%s was banned" msgstr "%s đã bị cấm" -#: ../libempathy-gtk/empathy-chat.c:2312 +#: ../libempathy-gtk/empathy-chat.c:2529 #, c-format msgid "%s has left the room" msgstr "%s rời phòng" @@ -1431,105 +1515,126 @@ msgstr "%s rời phòng" #. * given by the user living the room. If this poses a problem, #. * please let us know. :-) #. -#: ../libempathy-gtk/empathy-chat.c:2321 +#: ../libempathy-gtk/empathy-chat.c:2538 #, c-format msgid " (%s)" msgstr " (%s)" -#: ../libempathy-gtk/empathy-chat.c:2346 +#: ../libempathy-gtk/empathy-chat.c:2563 #, c-format msgid "%s has joined the room" msgstr "%s vào phòng" -#: ../libempathy-gtk/empathy-chat.c:2371 +#: ../libempathy-gtk/empathy-chat.c:2588 #, c-format msgid "%s is now known as %s" msgstr "%s bây giờ là %s" -#: ../libempathy-gtk/empathy-chat.c:2510 -#: ../src/empathy-streamed-media-window.c:1953 -#: ../src/empathy-event-manager.c:1126 +#: ../libempathy-gtk/empathy-chat.c:2727 +#: ../src/empathy-streamed-media-window.c:1894 +#: ../src/empathy-event-manager.c:1241 ../src/empathy-call-window.c:1666 msgid "Disconnected" msgstr "Bị ngắt kết nối" #. Add message -#: ../libempathy-gtk/empathy-chat.c:3140 +#: ../libempathy-gtk/empathy-chat.c:3374 msgid "Would you like to store this password?" msgstr "Bạn có muốn lưu mật khẩu không?" -#: ../libempathy-gtk/empathy-chat.c:3146 +#: ../libempathy-gtk/empathy-chat.c:3380 msgid "Remember" msgstr "Nhớ" -#: ../libempathy-gtk/empathy-chat.c:3156 +#: ../libempathy-gtk/empathy-chat.c:3390 msgid "Not now" msgstr "Không phải lúc này" -#: ../libempathy-gtk/empathy-chat.c:3200 +#: ../libempathy-gtk/empathy-chat.c:3434 msgid "Retry" msgstr "Thử lại" -#: ../libempathy-gtk/empathy-chat.c:3204 +#: ../libempathy-gtk/empathy-chat.c:3438 msgid "Wrong password; please try again:" msgstr "Mật khẩu sai; vui lòng thử lại:" #. Add message -#: ../libempathy-gtk/empathy-chat.c:3321 +#: ../libempathy-gtk/empathy-chat.c:3568 msgid "This room is protected by a password:" msgstr "Vào phòng này cần mật khẩu:" -#: ../libempathy-gtk/empathy-chat.c:3348 +#: ../libempathy-gtk/empathy-chat.c:3595 msgid "Join" msgstr "Vào" -#: ../libempathy-gtk/empathy-chat.c:3518 ../src/empathy-event-manager.c:1147 +#: ../libempathy-gtk/empathy-chat.c:3797 ../src/empathy-event-manager.c:1262 msgid "Connected" msgstr "Đã kết nối" -#: ../libempathy-gtk/empathy-chat.c:3571 -#: ../libempathy-gtk/empathy-log-window.c:650 +#: ../libempathy-gtk/empathy-chat.c:3852 msgid "Conversation" -msgstr "Cuộc nói chuyện" +msgstr "Cuộc trò chuyện" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:422 +#. Translators: this string is a something like +#. * "Escher Cat (SMS)" +#: ../libempathy-gtk/empathy-chat.c:3857 +#, c-format +msgid "%s (SMS)" +msgstr "%s (SMS)" + +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424 msgid "Unknown or invalid identifier" msgstr "Định danh lạ hoặc không hợp lệ" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:424 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426 msgid "Contact blocking temporarily unavailable" msgstr "Tạm thời không thể chặn liên lạc" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:426 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428 msgid "Contact blocking unavailable" msgstr "Không hỗ trợ chặn liên lạc" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:428 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:430 msgid "Permission Denied" msgstr "Không đủ quyền truy cập" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:432 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:434 msgid "Could not block contact" msgstr "Không thể chặn liên lạc" -#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:701 +#: ../libempathy-gtk/empathy-contact-blocking-dialog.c:772 msgid "Edit Blocked Contacts" msgstr "Thay đổi liên lạc bị chặn" +#. Account and Identifier +#: ../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: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 +msgid "Account:" +msgstr "Tài khoản:" + +#: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:2 +msgid "Blocked Contacts" +msgstr "Liên lạc bị chặn" + #. Copy Link Address menu item #: ../libempathy-gtk/empathy-chat-text-view.c:320 -#: ../libempathy-gtk/empathy-theme-adium.c:794 +#: ../libempathy-gtk/empathy-theme-adium.c:1417 msgid "_Copy Link Address" msgstr "_Chép địa chỉ liên kết" #. Open Link menu item #: ../libempathy-gtk/empathy-chat-text-view.c:327 -#: ../libempathy-gtk/empathy-theme-adium.c:801 +#: ../libempathy-gtk/empathy-theme-adium.c:1424 msgid "_Open Link" msgstr "Mở _liên kết" #. Translators: timestamp displayed between conversations in #. * chat windows (strftime format string) -#: ../libempathy-gtk/empathy-chat-text-view.c:420 +#: ../libempathy-gtk/empathy-chat-text-view.c:415 msgid "%A %B %d %Y" msgstr "%A %B %d %Y" @@ -1548,24 +1653,24 @@ msgid "New Contact" msgstr "Liên lạc mới" #: ../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 "Chặn %s chứ?" #: ../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 "Bạn có chắc muốn chặn '%s' lần nữa không?" #: ../libempathy-gtk/empathy-contact-dialogs.c:543 -#: ../libempathy-gtk/empathy-individual-dialogs.c:269 +#: ../libempathy-gtk/empathy-individual-dialogs.c:274 msgid "_Block" msgstr "_Chặn" #: ../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] "_Thông báo người dùng lạm dụng" @@ -1590,122 +1695,121 @@ msgstr "Bỏ nhóm" msgid "Favorite People" msgstr "Người ưa thích" -#: ../libempathy-gtk/empathy-contact-list-view.c:1987 -#: ../libempathy-gtk/empathy-individual-view.c:2343 +#: ../libempathy-gtk/empathy-contact-list-view.c:1983 +#: ../libempathy-gtk/empathy-individual-view.c:2375 #, c-format msgid "Do you really want to remove the group '%s'?" -msgstr "Bạn có thực sự muốn gỡ bỏ nhóm « %s » không?" +msgstr "Bạn có thực sự muốn bỏ nhóm '%s' không?" -#: ../libempathy-gtk/empathy-contact-list-view.c:1989 -#: ../libempathy-gtk/empathy-individual-view.c:2346 +#: ../libempathy-gtk/empathy-contact-list-view.c:1985 +#: ../libempathy-gtk/empathy-individual-view.c:2378 msgid "Removing group" msgstr "Đang gỡ bỏ nhóm" #. Remove -#: ../libempathy-gtk/empathy-contact-list-view.c:2038 -#: ../libempathy-gtk/empathy-contact-list-view.c:2115 -#: ../libempathy-gtk/empathy-individual-view.c:2401 -#: ../libempathy-gtk/empathy-individual-view.c:2595 -#: ../src/empathy-accounts-dialog.ui.h:7 +#: ../libempathy-gtk/empathy-contact-list-view.c:2034 +#: ../libempathy-gtk/empathy-contact-list-view.c:2111 +#: ../libempathy-gtk/empathy-individual-view.c:2433 +#: ../libempathy-gtk/empathy-individual-view.c:2636 msgid "_Remove" msgstr "_Bỏ" -#: ../libempathy-gtk/empathy-contact-list-view.c:2068 -#: ../libempathy-gtk/empathy-individual-view.c:2465 +#: ../libempathy-gtk/empathy-contact-list-view.c:2064 +#: ../libempathy-gtk/empathy-individual-view.c:2500 #, c-format msgid "Do you really want to remove the contact '%s'?" -msgstr "Bạn thực sự muốn gỡ bỏ liên lạc « %s » không?" +msgstr "Bạn thực sự muốn bỏ liên lạc '%s' không?" -#: ../libempathy-gtk/empathy-contact-list-view.c:2070 -#: ../libempathy-gtk/empathy-individual-view.c:2486 +#: ../libempathy-gtk/empathy-contact-list-view.c:2066 +#: ../libempathy-gtk/empathy-individual-view.c:2521 msgid "Removing contact" msgstr "Đang gỡ bỏ liên lạc" -#: ../libempathy-gtk/empathy-contact-menu.c:219 -#: ../src/empathy-main-window.ui.h:13 +#: ../libempathy-gtk/empathy-contact-menu.c:220 +#: ../src/empathy-main-window.ui.h:14 msgid "_Add Contact…" msgstr "Thê_m liên lạc…" -#: ../libempathy-gtk/empathy-contact-menu.c:299 +#: ../libempathy-gtk/empathy-contact-menu.c:300 msgid "_Block Contact" msgstr "_Chặn liên lạc" -#: ../libempathy-gtk/empathy-contact-menu.c:328 -#: ../libempathy-gtk/empathy-individual-menu.c:517 -#: ../src/empathy-main-window.ui.h:15 +#: ../libempathy-gtk/empathy-contact-menu.c:329 +#: ../libempathy-gtk/empathy-individual-menu.c:548 +#: ../src/empathy-main-window.ui.h:16 msgid "_Chat" msgstr "_Trò chuyện" -#: ../libempathy-gtk/empathy-contact-menu.c:359 -#: ../libempathy-gtk/empathy-individual-menu.c:560 +#: ../libempathy-gtk/empathy-contact-menu.c:361 +#: ../libempathy-gtk/empathy-individual-menu.c:639 msgctxt "menu item" msgid "_Audio Call" -msgstr "_Gọi (tiếng)" +msgstr "_Gọi thoại" -#: ../libempathy-gtk/empathy-contact-menu.c:390 -#: ../libempathy-gtk/empathy-individual-menu.c:602 +#: ../libempathy-gtk/empathy-contact-menu.c:394 +#: ../libempathy-gtk/empathy-individual-menu.c:684 msgctxt "menu item" msgid "_Video Call" -msgstr "_Gọi (hình)" +msgstr "_Gọi video" -#: ../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:440 +#: ../libempathy-gtk/empathy-individual-menu.c:737 +#: ../src/empathy-main-window.ui.h:27 msgid "_Previous Conversations" -msgstr "_Cuộc nói chuyện trước" +msgstr "_Cuộc trò chuyện trước" -#: ../libempathy-gtk/empathy-contact-menu.c:458 -#: ../libempathy-gtk/empathy-individual-menu.c:686 +#: ../libempathy-gtk/empathy-contact-menu.c:462 +#: ../libempathy-gtk/empathy-individual-menu.c:778 msgid "Send File" msgstr "Gửi tập tin" -#: ../libempathy-gtk/empathy-contact-menu.c:481 -#: ../libempathy-gtk/empathy-individual-menu.c:728 +#: ../libempathy-gtk/empathy-contact-menu.c:485 +#: ../libempathy-gtk/empathy-individual-menu.c:820 msgid "Share My Desktop" msgstr "Chia sẻ màn hình làm việc" -#: ../libempathy-gtk/empathy-contact-menu.c:521 -#: ../libempathy-gtk/empathy-contact-widget.c:1763 -#: ../libempathy-gtk/empathy-individual-menu.c:763 -#: ../libempathy-gtk/empathy-individual-widget.c:1372 +#: ../libempathy-gtk/empathy-contact-menu.c:525 +#: ../libempathy-gtk/empathy-contact-widget.c:1890 +#: ../libempathy-gtk/empathy-individual-menu.c:855 +#: ../libempathy-gtk/empathy-individual-widget.c:1386 msgid "Favorite" msgstr "Ưa thích" -#: ../libempathy-gtk/empathy-contact-menu.c:550 -#: ../libempathy-gtk/empathy-individual-menu.c:791 +#: ../libempathy-gtk/empathy-contact-menu.c:554 +#: ../libempathy-gtk/empathy-individual-menu.c:883 msgid "Infor_mation" msgstr "Thôn_g tin" -#: ../libempathy-gtk/empathy-contact-menu.c:596 +#: ../libempathy-gtk/empathy-contact-menu.c:600 msgctxt "Edit contact (contextual menu)" msgid "_Edit" msgstr "_Sửa" -#: ../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:654 +#: ../libempathy-gtk/empathy-individual-menu.c:1070 +#: ../src/empathy-chat-window.c:1010 msgid "Inviting you to this room" msgstr "Mời bạn vào phòng này" -#: ../libempathy-gtk/empathy-contact-menu.c:681 -#: ../libempathy-gtk/empathy-individual-menu.c:1019 +#: ../libempathy-gtk/empathy-contact-menu.c:685 +#: ../libempathy-gtk/empathy-individual-menu.c:1116 msgid "_Invite to Chat Room" msgstr "Mờ_i vào phòng trò chuyện" #. Title -#: ../libempathy-gtk/empathy-contact-search-dialog.c:513 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:514 msgid "Search contacts" msgstr "Tìm liên lạc" -#: ../libempathy-gtk/empathy-contact-search-dialog.c:543 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:544 msgid "Search: " msgstr "Tìm: " -#: ../libempathy-gtk/empathy-contact-search-dialog.c:601 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:602 msgid "_Add Contact" msgstr "Thê_m liên lạc" -#: ../libempathy-gtk/empathy-contact-search-dialog.c:619 +#: ../libempathy-gtk/empathy-contact-search-dialog.c:620 msgid "No contacts found" msgstr "Không tìm thấy liên lạc" @@ -1713,178 +1817,201 @@ msgstr "Không tìm thấy liên lạc" msgid "Select a contact" msgstr "Chọn liên lạc" -#: ../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 "Họ tên:" -#: ../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 "Số điện thoại:" -#: ../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 "Địa chỉ E-mail:" -#: ../libempathy-gtk/empathy-contact-widget.c:298 +#: ../libempathy-gtk/empathy-contact-widget.c:339 #: ../libempathy-gtk/empathy-individual-widget.c:156 msgid "Website:" msgstr "Trang 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 "Ngày sinh:" -#: ../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 "Lần cuối cùng trực tuyến:" + +#: ../libempathy-gtk/empathy-contact-widget.c:348 +msgid "Connected from:" +msgstr "Kết nối từ:" + +#. 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 "Thông điệp khi vắng mặt:" + +#: ../libempathy-gtk/empathy-contact-widget.c:606 +msgid "Channels:" +msgstr "Kênh:" + +#: ../libempathy-gtk/empathy-contact-widget.c:901 +#: ../libempathy-gtk/empathy-individual-widget.c:495 msgid "Country ISO Code:" msgstr "Mã ISO quốc gia:" -#: ../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 "Quốc gia:" -#: ../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 "Bang:" -#: ../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 "Thành phố:" -#: ../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 "Vùng:" -#: ../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 "Mã bưu chính:" -#: ../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 "Đường:" -#: ../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 "Toà nhà:" -#: ../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 "Tầng:" -#: ../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 "Phòng:" -#: ../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 "Chữ:" -#: ../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 "Mô tả:" -#: ../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 "Mức chính xác:" -#: ../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 "Nhiểu:" -#: ../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 "Nhiễu dọc (mét):" -#: ../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 "Nhiễu ngang (mét):" -#: ../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 "Tốc độ:" -#: ../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 "Mang:" -#: ../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 "Tốc độ leo:" -#: ../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 "Lần cập nhật cuối:" -#: ../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 "Kinh độ:" -#: ../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 "Vĩ độ:" -#: ../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 "Cao độ:" -#: ../libempathy-gtk/empathy-contact-widget.c:871 -#: ../libempathy-gtk/empathy-contact-widget.c:888 -#: ../libempathy-gtk/empathy-individual-widget.c:616 -#: ../libempathy-gtk/empathy-individual-widget.c:633 -#: ../src/empathy-preferences.ui.h:12 +#: ../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:16 msgid "Location" msgstr "Vị trí" #. translators: format is "Location, $date" -#: ../libempathy-gtk/empathy-contact-widget.c:890 -#: ../libempathy-gtk/empathy-individual-widget.c:635 +#: ../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:942 -#: ../libempathy-gtk/empathy-individual-widget.c:684 +#: ../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 lúc %R UTC" -#: ../libempathy-gtk/empathy-contact-widget.c:1024 -#: ../libempathy-gtk/empathy-individual-widget.c:919 +#: ../libempathy-gtk/empathy-contact-widget.c:1151 +#: ../libempathy-gtk/empathy-individual-widget.c:931 msgid "Save Avatar" msgstr "Lưu ảnh riêng" -#: ../libempathy-gtk/empathy-contact-widget.c:1080 -#: ../libempathy-gtk/empathy-individual-widget.c:977 +#: ../libempathy-gtk/empathy-contact-widget.c:1207 +#: ../libempathy-gtk/empathy-individual-widget.c:989 msgid "Unable to save avatar" msgstr "Không thể lưu ảnh riêng" @@ -1894,7 +2021,7 @@ msgstr "<b>Vị trí</b> vào (ngày)\t" #. Alias #: ../libempathy-gtk/empathy-contact-widget.ui.h:3 -#: ../libempathy-gtk/empathy-individual-widget.c:1307 +#: ../libempathy-gtk/empathy-individual-widget.c:1321 msgid "Alias:" msgstr "Bí danh:" @@ -1914,7 +2041,7 @@ msgstr "Chi tiết liên lạc" #. 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:1511 +#: ../libempathy-gtk/empathy-individual-widget.c:1525 msgid "Identifier:" msgstr "Nhận diện:" @@ -1931,84 +2058,90 @@ msgstr "HĐH:" msgid "Version:" msgstr "Phiên bản:" -#: ../libempathy-gtk/empathy-groups-widget.c:332 +#: ../libempathy-gtk/empathy-groups-widget.c:333 msgid "Groups" msgstr "Nhóm" -#: ../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 "" "Chọn những nhóm nơi bạn muốn liên lạc này xuất hiện; bạn có khả năng chọn " -"một hay nhiều nhóm, hay không chọn nhóm (≥0 nhóm)." +"một hay nhiều nhóm hay không chọn nhóm (≥0 nhóm)." -#: ../libempathy-gtk/empathy-groups-widget.c:363 +#: ../libempathy-gtk/empathy-groups-widget.c:364 msgid "_Add Group" msgstr "_Thêm Nhóm" -#: ../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 "Chọn" -#: ../libempathy-gtk/empathy-groups-widget.c:408 -#: ../src/empathy-main-window.c:1436 +#: ../libempathy-gtk/empathy-groups-widget.c:409 +#: ../src/empathy-main-window.c:1835 msgid "Group" msgstr "Nhóm" -#: ../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] "Danh sách sẽ bị chặn:" -#: ../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] "Danh sách không thể bị chặn:" #. 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 "Liên lạc có kết nối" -#: ../libempathy-gtk/empathy-individual-linker.c:354 +#: ../libempathy-gtk/empathy-individual-linker.c:370 msgid "Select contacts to link" msgstr "Chọn liên lạc để kết nối" -#: ../libempathy-gtk/empathy-individual-linker.c:428 +#: ../libempathy-gtk/empathy-individual-linker.c:444 msgid "New contact preview" msgstr "Xem thử liên lạc mới" -#: ../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 "Liên lạc chọn trong danh sách này bên trái sẽ được liên kết với nhau." #. 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:138 #, 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:594 +#: ../libempathy-gtk/empathy-new-message-dialog.c:248 +msgid "_SMS" +msgstr "_SMS" + +#: ../libempathy-gtk/empathy-individual-menu.c:931 msgctxt "Edit individual (contextual menu)" msgid "_Edit" msgstr "_Sửa" #. 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:957 msgctxt "Link individual (contextual menu)" msgid "_Link Contacts…" msgstr "_Kết nối liên lạc…" -#: ../libempathy-gtk/empathy-individual-view.c:2308 +#: ../libempathy-gtk/empathy-individual-view.c:2340 msgid "Delete and _Block" msgstr "Xoá và _chặn" -#: ../libempathy-gtk/empathy-individual-view.c:2474 +#: ../libempathy-gtk/empathy-individual-view.c:2509 #, c-format msgid "" "Do you really want to remove the linked contact '%s'? Note that this will " @@ -2017,7 +2150,7 @@ msgstr "" "Bạn có muốn bỏ liên lạc được liên kết '%s' không? Chú ý điều này sẽ bỏ mọi " "liên lạc hình thành nên liên lạc liên kết này." -#: ../libempathy-gtk/empathy-individual-widget.c:1652 +#: ../libempathy-gtk/empathy-individual-widget.c:1672 #, c-format msgid "Linked contact containing %u contact" msgid_plural "Linked contacts containing %u contacts" @@ -2099,65 +2232,202 @@ msgctxt "Unlink individual (button)" msgid "_Unlink" msgstr "_Bỏ liên kết" -#: ../libempathy-gtk/empathy-log-window.c:660 -msgid "Date" -msgstr "Ngày" +#: ../libempathy-gtk/empathy-log-window.c:458 +msgid "History" +msgstr "Nhật ký" + +#: ../libempathy-gtk/empathy-log-window.c:510 +msgid "Show" +msgstr "Hiện" -#. Tab Label +#: ../libempathy-gtk/empathy-log-window.c:532 +msgid "Search" +msgstr "Tìm kiếm" + +#: ../libempathy-gtk/empathy-log-window.c:946 +#, c-format +msgid "Chat in %s" +msgstr "Chat ở %s" + +#: ../libempathy-gtk/empathy-log-window.c:948 +#, c-format +msgid "Chat with %s" +msgstr "Chat với %s" + +#: ../libempathy-gtk/empathy-log-window.c:998 +#: ../libempathy-gtk/empathy-log-window.c:1176 +msgctxt "A date with the time" +msgid "%A, %e %B %Y %X" +msgstr "%A, %e %B %Y %X" + +#. Translators: this is an emote: '* Danielle waves' +#: ../libempathy-gtk/empathy-log-window.c:1118 +#, c-format +msgid "<i>* %s %s</i>" +msgstr "<i>* %s %s</i>" + +#. Translators: this is a message: 'Danielle: hello' +#. * The string in bold is the sender's name +#: ../libempathy-gtk/empathy-log-window.c:1124 +#, c-format +msgid "<b>%s:</b> %s" +msgstr "<b>%s:</b> %s" + +#: ../libempathy-gtk/empathy-log-window.c:1195 +#: ../libempathy-gtk/empathy-log-window.c:1197 +#: ../src/empathy-ft-manager.c:1026 +msgid "%" +msgstr "%" + +#: ../libempathy-gtk/empathy-log-window.c:1204 +#, c-format +msgid "Call took %s, ended at %s" +msgstr "Cuộc gọi kéo dài %s, kết thúc lúc %s" + +#: ../libempathy-gtk/empathy-log-window.c:1536 +msgid "Today" +msgstr "Hôm nay" + +#: ../libempathy-gtk/empathy-log-window.c:1540 +msgid "Yesterday" +msgstr "Hôm qua" + +#: ../libempathy-gtk/empathy-log-window.c:1556 +msgctxt "" +"A date such as '23 May 2010', %e is the day, %B the month and %Y the year" +msgid "%e %B %Y" +msgstr "%e %B %Y" + +#: ../libempathy-gtk/empathy-log-window.c:1637 +#: ../libempathy-gtk/empathy-log-window.c:3203 +msgid "Anytime" +msgstr "Bất kỳ lúc nào" + +#: ../libempathy-gtk/empathy-log-window.c:1717 +#: ../libempathy-gtk/empathy-log-window.c:2154 +msgid "Anyone" +msgstr "Bất kỳ ai" + +#: ../libempathy-gtk/empathy-log-window.c:2451 +msgid "Who" +msgstr "Ai" + +#: ../libempathy-gtk/empathy-log-window.c:2655 +msgid "When" +msgstr "Khi nào" + +#: ../libempathy-gtk/empathy-log-window.c:2771 +msgid "Anything" +msgstr "Mọi thứ" + +#: ../libempathy-gtk/empathy-log-window.c:2773 +msgid "Text chats" +msgstr "Các cuộc trò chuyện" + +#: ../libempathy-gtk/empathy-log-window.c:2775 +#: ../src/empathy-preferences.ui.h:4 +msgid "Calls" +msgstr "Các cuộc gọi" + +#: ../libempathy-gtk/empathy-log-window.c:2780 +msgid "Incoming calls" +msgstr "Cuộc gọi đến" + +#: ../libempathy-gtk/empathy-log-window.c:2781 +msgid "Outgoing calls" +msgstr "Cuộc gọi đi" + +#: ../libempathy-gtk/empathy-log-window.c:2782 +msgid "Missed calls" +msgstr "Cuộc gọi nhỡ" + +#: ../libempathy-gtk/empathy-log-window.c:2804 +msgid "What" +msgstr "Cái gì" + +#: ../libempathy-gtk/empathy-log-window.c:3506 +msgid "Are you sure you want to delete all logs of previous conversations?" +msgstr "Bạn có chắc bạn muốn xóa nhật ký mọi cuộc trò chuyện trước đây không?" + +#: ../libempathy-gtk/empathy-log-window.c:3510 +msgid "Clear All" +msgstr "Dọn sạch" + +#: ../libempathy-gtk/empathy-log-window.c:3517 +msgid "Delete from:" +msgstr "Xóa từ:" + +#: ../libempathy-gtk/empathy-log-window.ui.h:1 +msgid "<span size=\"x-large\">Loading...</span>" +msgstr "<span size=\"x-large\">Đang tải...</span>" + +#. translators: Call is a noun. This string is used in the window +#. * title #: ../libempathy-gtk/empathy-log-window.ui.h:2 -msgid "Conversations" -msgstr "Cuộc nói chuyện" +#: ../src/empathy-streamed-media-window.c:1299 +#: ../src/empathy-call-window.ui.h:2 +msgid "Call" +msgstr "Gọi" #: ../libempathy-gtk/empathy-log-window.ui.h:3 -#: ../libempathy-gtk/empathy-search-bar.ui.h:1 -msgid "Find Next" -msgstr "Tìm tiếp" +#: ../src/empathy-chat-window.ui.h:3 +msgid "Chat" +msgstr "Trò chuyện" #: ../libempathy-gtk/empathy-log-window.ui.h:4 -#: ../libempathy-gtk/empathy-search-bar.ui.h:2 -msgid "Find Previous" -msgstr "Tìm lùi" +msgid "Delete All History..." +msgstr "Xóa sạch nhật ký" #: ../libempathy-gtk/empathy-log-window.ui.h:5 -msgid "Previous Conversations" -msgstr "Cuộc nói chuyện trước" +msgid "Profile" +msgstr "Hồ sơ" + +#: ../libempathy-gtk/empathy-log-window.ui.h:6 +#: ../src/empathy-call-window.ui.h:21 +#: ../src/empathy-streamed-media-window.ui.h:20 +msgid "Video" +msgstr "Video" -#. Tab Label #: ../libempathy-gtk/empathy-log-window.ui.h:7 -msgid "Search" -msgstr "Tìm kiếm" +#: ../src/empathy-call-window.ui.h:24 ../src/empathy-chat-window.ui.h:12 +#: ../src/empathy-main-window.ui.h:20 +msgid "_Edit" +msgstr "_Sửa" + +#: ../libempathy-gtk/empathy-log-window.ui.h:8 +msgid "_File" +msgstr "_Tập tin" -#. Searching *for* something #: ../libempathy-gtk/empathy-log-window.ui.h:9 -msgid "_For:" -msgstr "_Tìm:" +msgid "page 2" +msgstr "trang 2" #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:2 msgid "Contact ID:" msgstr "ID liên lạc:" #. add chat button -#: ../libempathy-gtk/empathy-new-message-dialog.c:171 +#: ../libempathy-gtk/empathy-new-message-dialog.c:258 msgid "C_hat" msgstr "_Trò chuyện" #. Tweak the dialog -#: ../libempathy-gtk/empathy-new-message-dialog.c:181 +#: ../libempathy-gtk/empathy-new-message-dialog.c:277 msgid "New Conversation" -msgstr "Cuộc nói chuyện mới" +msgstr "Cuộc trò chuyện mới" #. add video toggle -#: ../libempathy-gtk/empathy-new-call-dialog.c:253 +#: ../libempathy-gtk/empathy-new-call-dialog.c:231 msgid "Send _Video" -msgstr "Truyền _hình" +msgstr "Gửi _video" #. add chat button -#: ../libempathy-gtk/empathy-new-call-dialog.c:261 +#: ../libempathy-gtk/empathy-new-call-dialog.c:242 msgid "C_all" msgstr "_Gọi" #. Tweak the dialog -#: ../libempathy-gtk/empathy-new-call-dialog.c:271 +#: ../libempathy-gtk/empathy-new-call-dialog.c:252 msgid "New Call" msgstr "Cuộc gọi mới" @@ -2176,34 +2446,34 @@ msgstr "" #. COL_DISPLAY_MARKUP #. COL_STATUS_CUSTOMISABLE #. COL_TYPE -#: ../libempathy-gtk/empathy-presence-chooser.c:170 -#: ../libempathy-gtk/empathy-presence-chooser.c:206 +#: ../libempathy-gtk/empathy-presence-chooser.c:167 +#: ../libempathy-gtk/empathy-presence-chooser.c:203 msgid "Custom Message…" msgstr "Thông điệp riêng…" -#: ../libempathy-gtk/empathy-presence-chooser.c:223 -#: ../libempathy-gtk/empathy-presence-chooser.c:225 +#: ../libempathy-gtk/empathy-presence-chooser.c:220 +#: ../libempathy-gtk/empathy-presence-chooser.c:222 msgid "Edit Custom Messages…" msgstr "Sửa thông điệp riêng…" -#: ../libempathy-gtk/empathy-presence-chooser.c:348 +#: ../libempathy-gtk/empathy-presence-chooser.c:345 msgid "Click to remove this status as a favorite" msgstr "Nhấn để bỏ trạng thái này khỏi danh sách yêu thích" -#: ../libempathy-gtk/empathy-presence-chooser.c:357 +#: ../libempathy-gtk/empathy-presence-chooser.c:354 msgid "Click to make this status a favorite" msgstr "Nhấn để chọn trạng thái này là yêu thích" -#: ../libempathy-gtk/empathy-presence-chooser.c:391 +#: ../libempathy-gtk/empathy-presence-chooser.c:388 msgid "Set status" msgstr "Đặt trạng thái" -#: ../libempathy-gtk/empathy-presence-chooser.c:946 +#: ../libempathy-gtk/empathy-presence-chooser.c:943 msgid "Set your presence and current status" msgstr "Đặt hiện diện và trạng thái" #. Custom messages -#: ../libempathy-gtk/empathy-presence-chooser.c:1134 +#: ../libempathy-gtk/empathy-presence-chooser.c:1131 msgid "Custom messages…" msgstr "Thông điệp riêng…" @@ -2216,6 +2486,14 @@ msgstr "Thông điệp riêng…" msgid "New %s account" msgstr "Tài khoản %s mới" +#: ../libempathy-gtk/empathy-search-bar.ui.h:1 +msgid "Find Next" +msgstr "Tìm tiếp" + +#: ../libempathy-gtk/empathy-search-bar.ui.h:2 +msgid "Find Previous" +msgstr "Tìm lùi" + #: ../libempathy-gtk/empathy-search-bar.ui.h:3 msgid "Find:" msgstr "Tìm:" @@ -2268,35 +2546,38 @@ msgstr "Cuộc gọi tiếng nói gửi đi" msgid "Voice call ended" msgstr "Cuộc gọi tiếng nói đã kết thúc" -#: ../libempathy-gtk/empathy-status-preset-dialog.c:364 -msgid "Enter Custom Message" -msgstr "Nhập dòng trạng thái riêng" - -#: ../libempathy-gtk/empathy-status-preset-dialog.c:523 +#: ../libempathy-gtk/empathy-status-preset-dialog.c:296 msgid "Edit Custom Messages" msgstr "Sửa dòng trạng thái riêng" #: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:1 -msgid "Save _New Status Message" -msgstr "_Lưu dòng trạng thái mới" +#: ../src/empathy-accounts-dialog.ui.h:5 +#: ../src/empathy-chatrooms-window.ui.h:3 +msgid "Remove" +msgstr "Bỏ" -#: ../libempathy-gtk/empathy-status-preset-dialog.ui.h:2 -msgid "Saved Status Messages" -msgstr "Dòng trạng thái đã lưu" +#: ../libempathy-gtk/empathy-theme-adium.c:1121 +#, c-format +msgid "Message edited at %s" +msgstr "Tin nhắn được chỉnh sửa lúc %s" -#: ../libempathy-gtk/empathy-theme-manager.c:67 +#: ../libempathy-gtk/empathy-theme-adium.c:1943 +msgid "Normal" +msgstr "Bình thường" + +#: ../libempathy-gtk/empathy-theme-manager.c:75 msgid "Classic" msgstr "Cổ điển" -#: ../libempathy-gtk/empathy-theme-manager.c:68 +#: ../libempathy-gtk/empathy-theme-manager.c:76 msgid "Simple" msgstr "Đơn giản" -#: ../libempathy-gtk/empathy-theme-manager.c:69 +#: ../libempathy-gtk/empathy-theme-manager.c:77 msgid "Clean" msgstr "Dọn" -#: ../libempathy-gtk/empathy-theme-manager.c:70 +#: ../libempathy-gtk/empathy-theme-manager.c:78 msgid "Blue" msgstr "Xanh" @@ -2371,19 +2652,19 @@ msgstr "Nhớ lựa chọn này cho tương lai" msgid "Certificate Details" msgstr "Chi tiết chứng nhận" -#: ../libempathy-gtk/empathy-ui-utils.c:1705 +#: ../libempathy-gtk/empathy-ui-utils.c:1653 msgid "Unable to open URI" msgstr "Không thể mở địa chỉ URI" -#: ../libempathy-gtk/empathy-ui-utils.c:1800 +#: ../libempathy-gtk/empathy-ui-utils.c:1749 msgid "Select a file" msgstr "Chọn một tập tin" -#: ../libempathy-gtk/empathy-ui-utils.c:1872 +#: ../libempathy-gtk/empathy-ui-utils.c:1821 msgid "Insufficient free space to save file" msgstr "Không đủ chỗ để lưu tập tin" -#: ../libempathy-gtk/empathy-ui-utils.c:1880 +#: ../libempathy-gtk/empathy-ui-utils.c:1829 #, c-format msgid "" "%s of free space are required to save this file, but only %s is available. " @@ -2391,7 +2672,7 @@ msgid "" msgstr "" "Cần %s vùng trống để lưu tập tin này nhưng chỉ có %s. Vui lòng chọn chỗ khác." -#: ../libempathy-gtk/empathy-ui-utils.c:1924 +#: ../libempathy-gtk/empathy-ui-utils.c:1873 #, c-format msgid "Incoming file from %s" msgstr "Tập tin đến từ %s" @@ -2405,45 +2686,45 @@ msgstr "Miền địa phương hiện có" #: ../libempathy-gtk/totem-subtitle-encoding.c:165 #: ../libempathy-gtk/totem-subtitle-encoding.c:167 msgid "Arabic" -msgstr "A Rập" +msgstr "Tiếng Ả Rập" #: ../libempathy-gtk/totem-subtitle-encoding.c:170 msgid "Armenian" -msgstr "Ác-mê-ni" +msgstr "Tiếng Ác-mê-ni" #: ../libempathy-gtk/totem-subtitle-encoding.c:173 #: ../libempathy-gtk/totem-subtitle-encoding.c:175 #: ../libempathy-gtk/totem-subtitle-encoding.c:177 msgid "Baltic" -msgstr "Ban-tích" +msgstr "Tiếng Ban-tích" #: ../libempathy-gtk/totem-subtitle-encoding.c:180 msgid "Celtic" -msgstr "Xen-tơ" +msgstr "Tiếng Xen-tơ" #: ../libempathy-gtk/totem-subtitle-encoding.c:183 #: ../libempathy-gtk/totem-subtitle-encoding.c:185 #: ../libempathy-gtk/totem-subtitle-encoding.c:187 #: ../libempathy-gtk/totem-subtitle-encoding.c:189 msgid "Central European" -msgstr "Vùng Trung Âu" +msgstr "Ngôn ngữ Trung Âu" #: ../libempathy-gtk/totem-subtitle-encoding.c:192 #: ../libempathy-gtk/totem-subtitle-encoding.c:194 #: ../libempathy-gtk/totem-subtitle-encoding.c:196 #: ../libempathy-gtk/totem-subtitle-encoding.c:198 msgid "Chinese Simplified" -msgstr "Tiếng Hoà phổ thông" +msgstr "Tiếng Hoa giản thể" #: ../libempathy-gtk/totem-subtitle-encoding.c:201 #: ../libempathy-gtk/totem-subtitle-encoding.c:203 #: ../libempathy-gtk/totem-subtitle-encoding.c:205 msgid "Chinese Traditional" -msgstr "Tiếng Hoà truyền thống" +msgstr "Tiếng Hoa phồn thể" #: ../libempathy-gtk/totem-subtitle-encoding.c:208 msgid "Croatian" -msgstr "Cợ-rô-a-ti-a" +msgstr "Tiếng Croatia" #: ../libempathy-gtk/totem-subtitle-encoding.c:211 #: ../libempathy-gtk/totem-subtitle-encoding.c:213 @@ -2456,75 +2737,75 @@ msgstr "Ki-rin" #: ../libempathy-gtk/totem-subtitle-encoding.c:224 msgid "Cyrillic/Russian" -msgstr "Ki-rin/Nga" +msgstr "Ki-rin/Tiếng Nga" #: ../libempathy-gtk/totem-subtitle-encoding.c:227 #: ../libempathy-gtk/totem-subtitle-encoding.c:229 msgid "Cyrillic/Ukrainian" -msgstr "Ki-rin/U-cợr-ainh" +msgstr "Ki-rin/Tiếng Ucraina" #: ../libempathy-gtk/totem-subtitle-encoding.c:232 msgid "Georgian" -msgstr "Gi-oa-gi-a" +msgstr "Tiếng Gioóc-gia" #: ../libempathy-gtk/totem-subtitle-encoding.c:235 #: ../libempathy-gtk/totem-subtitle-encoding.c:237 #: ../libempathy-gtk/totem-subtitle-encoding.c:239 msgid "Greek" -msgstr "tiếng Hy Lạp" +msgstr "Tiếng Hy Lạp" #: ../libempathy-gtk/totem-subtitle-encoding.c:242 msgid "Gujarati" -msgstr "Gu-gia-ra-ti" +msgstr "Tiếng Gujarati" #: ../libempathy-gtk/totem-subtitle-encoding.c:245 msgid "Gurmukhi" -msgstr "Gổ-mu-khi" +msgstr "Tiếng Gurmukhi" #: ../libempathy-gtk/totem-subtitle-encoding.c:248 #: ../libempathy-gtk/totem-subtitle-encoding.c:250 #: ../libempathy-gtk/totem-subtitle-encoding.c:252 #: ../libempathy-gtk/totem-subtitle-encoding.c:254 msgid "Hebrew" -msgstr "Do Thái" +msgstr "Tiếng Do Thái" #: ../libempathy-gtk/totem-subtitle-encoding.c:257 msgid "Hebrew Visual" -msgstr "Do Thái trực quan" +msgstr "Tiếng Do Thái trực quan" #: ../libempathy-gtk/totem-subtitle-encoding.c:260 msgid "Hindi" -msgstr "Hin-đi" +msgstr "Tiếng Hin-đi" #: ../libempathy-gtk/totem-subtitle-encoding.c:263 msgid "Icelandic" -msgstr "Băng Đảo" +msgstr "Tiếng Aixơlen" #: ../libempathy-gtk/totem-subtitle-encoding.c:266 #: ../libempathy-gtk/totem-subtitle-encoding.c:268 #: ../libempathy-gtk/totem-subtitle-encoding.c:270 msgid "Japanese" -msgstr "Nhật" +msgstr "Tiếng Nhật" #: ../libempathy-gtk/totem-subtitle-encoding.c:273 #: ../libempathy-gtk/totem-subtitle-encoding.c:275 #: ../libempathy-gtk/totem-subtitle-encoding.c:277 #: ../libempathy-gtk/totem-subtitle-encoding.c:279 msgid "Korean" -msgstr "Hàn" +msgstr "Tiếng Hàn Quốc" #: ../libempathy-gtk/totem-subtitle-encoding.c:282 msgid "Nordic" -msgstr "Bắc Âu" +msgstr "Vùng Bắc Âu" #: ../libempathy-gtk/totem-subtitle-encoding.c:285 msgid "Persian" -msgstr "Pha-xi" +msgstr "Tiếng Ba Tư" #: ../libempathy-gtk/totem-subtitle-encoding.c:288 #: ../libempathy-gtk/totem-subtitle-encoding.c:290 msgid "Romanian" -msgstr "Rô-ma-ni" +msgstr "Tiếng Rô-ma-ni" #: ../libempathy-gtk/totem-subtitle-encoding.c:293 msgid "South European" @@ -2532,14 +2813,14 @@ msgstr "Vùng Nam Âu" #: ../libempathy-gtk/totem-subtitle-encoding.c:296 msgid "Thai" -msgstr "Thái" +msgstr "Tiếng Thái" #: ../libempathy-gtk/totem-subtitle-encoding.c:299 #: ../libempathy-gtk/totem-subtitle-encoding.c:301 #: ../libempathy-gtk/totem-subtitle-encoding.c:303 #: ../libempathy-gtk/totem-subtitle-encoding.c:305 msgid "Turkish" -msgstr "Thổ Nhĩ Kỳ" +msgstr "Tiếng Thổ Nhĩ Kỳ" #: ../libempathy-gtk/totem-subtitle-encoding.c:308 #: ../libempathy-gtk/totem-subtitle-encoding.c:310 @@ -2565,11 +2846,11 @@ msgstr "Tiếng Việt" #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:108 msgid "The selected contact cannot receive files." -msgstr "Liên lạc được chọn không thể nhận tập tin." +msgstr "Liên lạc này không thể nhận tập tin." #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:114 msgid "The selected contact is offline." -msgstr "Liên lạc được chọn đã ngoại tuyến." +msgstr "Liên lạc này đã ngoại tuyến." #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:169 msgid "No error message" @@ -2577,26 +2858,26 @@ msgstr "Không có thông báo lỗi" #: ../nautilus-sendto-plugin/empathy-nautilus-sendto.c:242 msgid "Instant Message (Empathy)" -msgstr "Tin nhắn nhanh (Empathy)" +msgstr "Nhắn tin (Empathy)" -#: ../src/empathy.c:308 +#: ../src/empathy.c:309 msgid "Don't connect on startup" msgstr "Không kết nối khi khởi chạy" -#: ../src/empathy.c:312 +#: ../src/empathy.c:313 msgid "Don't display the contact list or any other dialogs on startup" msgstr "" "Không hiển thị danh sách liên lạc hoặc các hộp thoại khác khi khởi chạy" -#: ../src/empathy.c:320 +#: ../src/empathy.c:321 msgid "- Empathy IM Client" msgstr "— Trình gửi tin nhắn Empathy" -#: ../src/empathy.c:499 +#: ../src/empathy.c:500 msgid "Error contacting the Account Manager" msgstr "Lỗi liên lạc trình quản lý tài khoản" -#: ../src/empathy.c:501 +#: ../src/empathy.c:502 #, c-format msgid "" "There was an error while trying to connect to the Telepathy Account Manager. " @@ -2641,7 +2922,7 @@ msgstr "" "không, hãy viết thư cho Tổ Chức Phần Mềm Tự Do,\n" "Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor,\n" -"Boston, MA 02110-1301, USA (Mỹ)." +"Boston, MA 02110-130159, USA (Mỹ)." #: ../src/empathy-about-dialog.c:107 msgid "An Instant Messaging client for GNOME" @@ -2717,8 +2998,8 @@ msgid "" "calls." msgstr "" "Với Empathy bạn có thể trò chuyện với bạn bè trực tuyến dùng Google Talk, " -"AIM, Windows Live và các chương trình trò chuyện trực tuyến khác. Với " -"microphone và webcam, bạn còn có thể thực hiện gọi điện có hình." +"AIM, Windows Live và các chương trình trò chuyện trực tuyến khác. Với micrô " +"và webcam, bạn còn có thể thực hiện cuộc gọi thoại hoặc video." #: ../src/empathy-account-assistant.c:629 msgid "Do you have an account you've been using with another chat program?" @@ -2746,8 +3027,8 @@ msgid "Select the accounts you want to import:" msgstr "Chọn tài khoản bạn muốn nhập:" #: ../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 "Có" @@ -2820,34 +3101,34 @@ msgstr "Có vài thay đổi chưa lưu trong tài khoản %s của bạn." msgid "Your new account has not been saved yet." msgstr "Tài khoản mới của bạn chưa được lưu." -#: ../src/empathy-accounts-dialog.c:286 -#: ../src/empathy-streamed-media-window.c:809 +#: ../src/empathy-accounts-dialog.c:345 +#: ../src/empathy-streamed-media-window.c:754 ../src/empathy-call-window.c:651 msgid "Connecting…" msgstr "Đang kết nối…" -#: ../src/empathy-accounts-dialog.c:327 +#: ../src/empathy-accounts-dialog.c:386 #, c-format msgid "Offline — %s" msgstr "Ngoại tuyến - %s" -#: ../src/empathy-accounts-dialog.c:339 +#: ../src/empathy-accounts-dialog.c:398 #, c-format msgid "Disconnected — %s" msgstr "Đứt kết nối - %s" -#: ../src/empathy-accounts-dialog.c:350 +#: ../src/empathy-accounts-dialog.c:409 msgid "Offline — No Network Connection" msgstr "Ngoại tuyến - Không có kết nối mạng" -#: ../src/empathy-accounts-dialog.c:357 +#: ../src/empathy-accounts-dialog.c:416 msgid "Unknown Status" msgstr "Trạng thái lạ" -#: ../src/empathy-accounts-dialog.c:369 +#: ../src/empathy-accounts-dialog.c:428 msgid "Offline — Account Disabled" msgstr "Ngoại tuyến - Tài khoản bị tắt" -#: ../src/empathy-accounts-dialog.c:772 +#: ../src/empathy-accounts-dialog.c:831 msgid "" "You are about to create a new account, which will discard\n" "your changes. Are you sure you want to proceed?" @@ -2855,16 +3136,16 @@ msgstr "" "Bạn sắp tạo tài khoản mới. Việc này sẽ huỷ toàn\n" "bộ những thay đổi của bạn. Bạn có muốn tiếp tục không?" -#: ../src/empathy-accounts-dialog.c:1133 +#: ../src/empathy-accounts-dialog.c:1192 #, c-format msgid "Do you want to remove %s from your computer?" msgstr "Bạn có thực sự muốn gỡ bỏ %s không?" -#: ../src/empathy-accounts-dialog.c:1137 +#: ../src/empathy-accounts-dialog.c:1196 msgid "This will not remove your account on the server." msgstr "Hành động này sẽ xoá tài khoản của bạn khỏi máy chủ." -#: ../src/empathy-accounts-dialog.c:1375 +#: ../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?" @@ -2873,15 +3154,15 @@ msgstr "" "những thay đổi của bạn. Bạn có muốn tiếp tục không?" #. Menu items: to enabled/disable the account -#: ../src/empathy-accounts-dialog.c:1593 +#: ../src/empathy-accounts-dialog.c:1643 msgid "_Enable" msgstr "_Bật" -#: ../src/empathy-accounts-dialog.c:1594 +#: ../src/empathy-accounts-dialog.c:1644 msgid "_Disable" msgstr "_Tắt" -#: ../src/empathy-accounts-dialog.c:2113 +#: ../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?" @@ -2890,18 +3171,22 @@ msgstr "" "đổi của bạn. Bạn có muốn tiếp tục không?" #: ../src/empathy-accounts-dialog.ui.h:1 +msgid "Add…" +msgstr "Thêm…" + +#: ../src/empathy-accounts-dialog.ui.h:2 msgid "Loading account information" msgstr "Đang nạp thông tin liên lạc" -#: ../src/empathy-accounts-dialog.ui.h:2 +#: ../src/empathy-accounts-dialog.ui.h:3 msgid "No protocol installed" msgstr "Chưa cài đặt giao thức" -#: ../src/empathy-accounts-dialog.ui.h:3 +#: ../src/empathy-accounts-dialog.ui.h:4 msgid "Protocol:" msgstr "Giao thức:" -#: ../src/empathy-accounts-dialog.ui.h:4 +#: ../src/empathy-accounts-dialog.ui.h:6 msgid "" "To add a new account, you first have to install a backend for each protocol " "you want to use." @@ -2909,19 +3194,15 @@ msgstr "" "Để thêm một tài khoản, trước tiên bạn cần phải cài đặt một hậu phương cho " "mỗi giao thức cần dùng (v.d. IRC, Yahoo)." -#: ../src/empathy-accounts-dialog.ui.h:5 -msgid "_Add…" -msgstr "_Thêm…" - -#: ../src/empathy-accounts-dialog.ui.h:6 +#: ../src/empathy-accounts-dialog.ui.h:7 msgid "_Import…" msgstr "_Nhập…" -#: ../src/empathy-auth-client.c:250 +#: ../src/empathy-auth-client.c:249 msgid " - Empathy authentication client" msgstr "— Trình gửi tin nhắn Empathy" -#: ../src/empathy-auth-client.c:266 +#: ../src/empathy-auth-client.c:265 msgid "Empathy authentication client" msgstr "Trình xác thực Empathy" @@ -2929,94 +3210,116 @@ msgstr "Trình xác thực Empathy" msgid "People nearby" msgstr "Người chung quanh" -#: ../src/empathy-av.c:118 +#: ../src/empathy-av.c:118 ../src/empathy-call.c:124 msgid "- Empathy Audio/Video Client" -msgstr "— Trình hình/tiếng Empathy" +msgstr "- Trình khách thoại/video Empathy" -#: ../src/empathy-av.c:134 +#: ../src/empathy-av.c:134 ../src/empathy-call.c:145 msgid "Empathy Audio/Video Client" -msgstr "Trình hình/tiếng Empathy" +msgstr "Trình khách thoại/video Empathy" -#: ../src/empathy-streamed-media-window.c:479 +#: ../src/empathy-streamed-media-window.c:431 msgid "Contrast" msgstr "Độ tương phản" -#: ../src/empathy-streamed-media-window.c:482 +#: ../src/empathy-streamed-media-window.c:434 msgid "Brightness" msgstr "Độ sáng" -#: ../src/empathy-streamed-media-window.c:485 +#: ../src/empathy-streamed-media-window.c:437 msgid "Gamma" msgstr "Gama (γ)" -#: ../src/empathy-streamed-media-window.c:590 +#: ../src/empathy-streamed-media-window.c:542 msgid "Volume" -msgstr "Âm" +msgstr "Âm lượng" -#: ../src/empathy-streamed-media-window.c:1166 +#: ../src/empathy-streamed-media-window.c:1110 msgid "_Sidebar" msgstr "Khung _lề" -#: ../src/empathy-streamed-media-window.c:1186 +#: ../src/empathy-streamed-media-window.c:1130 msgid "Audio input" -msgstr "Âm vào" +msgstr "Đầu vào âm thanh" -#: ../src/empathy-streamed-media-window.c:1190 +#: ../src/empathy-streamed-media-window.c:1134 msgid "Video input" -msgstr "Phim vào" +msgstr "Đầu vào video" -#: ../src/empathy-streamed-media-window.c:1194 +#: ../src/empathy-streamed-media-window.c:1140 msgid "Dialpad" msgstr "Vùng quay số" -#: ../src/empathy-streamed-media-window.c:1205 +#: ../src/empathy-streamed-media-window.c:1151 msgid "Details" msgstr "Chi tiết" #. translators: Call is a noun and %s is the contact name. This string #. * is used in the window title -#: ../src/empathy-streamed-media-window.c:1274 +#: ../src/empathy-streamed-media-window.c:1220 +#: ../src/empathy-call-window.c:1005 #, c-format msgid "Call with %s" msgstr "Gọi cho %s" -#. translators: Call is a noun. This string is used in the window -#. * title -#: ../src/empathy-streamed-media-window.c:1353 -msgid "Call" -msgstr "Gọi" - -#: ../src/empathy-streamed-media-window.c:1507 +#: ../src/empathy-streamed-media-window.c:1453 +#: ../src/empathy-call-window.c:1249 msgid "The IP address as seen by the machine" -msgstr "Địa chỉ IP máy thấy" +msgstr "Địa chỉ IP máy này nhìn thấy" -#: ../src/empathy-streamed-media-window.c:1509 +#: ../src/empathy-streamed-media-window.c:1455 +#: ../src/empathy-call-window.c:1251 msgid "The IP address as seen by a server on the Internet" -msgstr "Địa chỉ IP máy chủ trên Internet thấy" +msgstr "Địa chỉ IP mà máy chủ trên Internet thấy" -#: ../src/empathy-streamed-media-window.c:1511 +#: ../src/empathy-streamed-media-window.c:1457 +#: ../src/empathy-call-window.c:1253 msgid "The IP address of the peer as seen by the other side" -msgstr "Địa chỉ IP bên kia thấy" +msgstr "Địa chỉ IP của peer mà bên kia thấy" -#: ../src/empathy-streamed-media-window.c:1513 +#: ../src/empathy-streamed-media-window.c:1459 +#: ../src/empathy-call-window.c:1255 msgid "The IP address of a relay server" msgstr "Địa chỉ IP của máy chuyển tiếp" -#: ../src/empathy-streamed-media-window.c:1515 +#: ../src/empathy-streamed-media-window.c:1461 +#: ../src/empathy-call-window.c:1257 msgid "The IP address of the multicast group" msgstr "Địa chỉ IP của nhóm multicast" +#: ../src/empathy-streamed-media-window.c:1843 +msgctxt "encoding video codec" +msgid "Unknown" +msgstr "Không rõ" + +#: ../src/empathy-streamed-media-window.c:1846 +msgctxt "encoding audio codec" +msgid "Unknown" +msgstr "Không rõ" + +#: ../src/empathy-streamed-media-window.c:1849 +msgctxt "decoding video codec" +msgid "Unknown" +msgstr "Không rõ" + +#: ../src/empathy-streamed-media-window.c:1852 +msgctxt "decoding audio codec" +msgid "Unknown" +msgstr "Không rõ" + #. Translators: number of minutes:seconds the caller has been connected -#: ../src/empathy-streamed-media-window.c:2270 +#: ../src/empathy-streamed-media-window.c:2144 #, c-format msgid "Connected — %d:%02dm" -msgstr "Có kết nối - %d:%02dm" +msgstr "Đã kết nối - %d:%02dm" -#: ../src/empathy-streamed-media-window.c:2331 +#: ../src/empathy-streamed-media-window.c:2205 +#: ../src/empathy-call-window.c:1985 msgid "Technical Details" msgstr "Chi tiết kỹ thuật" -#: ../src/empathy-streamed-media-window.c:2369 +#: ../src/empathy-streamed-media-window.c:2243 +#: ../src/empathy-call-window.c:2023 #, c-format msgid "" "%s's software does not understand any of the audio formats supported by your " @@ -3024,15 +3327,17 @@ msgid "" msgstr "" "Phần mềm của %s không hiểu bất kỳ định dạng âm thanh nào mà máy bạn hỗ trợ" -#: ../src/empathy-streamed-media-window.c:2374 +#: ../src/empathy-streamed-media-window.c:2248 +#: ../src/empathy-call-window.c:2028 #, c-format msgid "" "%s's software does not understand any of the video formats supported by your " "computer" msgstr "" -"Phần mềm của %s không hiểu bất kỳ định dạng hình ảnh nào mà máy bạn hỗ trợ" +"Phần mềm của %s không hiểu bất kỳ định dạng video nào mà máy bạn hỗ trợ" -#: ../src/empathy-streamed-media-window.c:2380 +#: ../src/empathy-streamed-media-window.c:2254 +#: ../src/empathy-call-window.c:2034 #, c-format msgid "" "Can't establish a connection to %s. One of you might be on a network that " @@ -3041,23 +3346,27 @@ msgstr "" "Không thể tạo kết nối đến %s. Có thể một trong số các bạn nằm trong một mạng " "không hỗ trợ kết nối trực tiếp." -#: ../src/empathy-streamed-media-window.c:2386 +#: ../src/empathy-streamed-media-window.c:2260 +#: ../src/empathy-call-window.c:2040 msgid "There was a failure on the network" msgstr "Lỗi mạng" -#: ../src/empathy-streamed-media-window.c:2390 +#: ../src/empathy-streamed-media-window.c:2264 +#: ../src/empathy-call-window.c:2044 msgid "" "The audio formats necessary for this call are not installed on your computer" msgstr "" "Định dạng âm thanh cần thiết cho cuộc gọi này chưa được cài đặt trên máy tính" -#: ../src/empathy-streamed-media-window.c:2393 +#: ../src/empathy-streamed-media-window.c:2267 +#: ../src/empathy-call-window.c:2047 msgid "" "The video formats necessary for this call are not installed on your computer" msgstr "" -"Định dạng hình ảnh cần thiết cho cuộc gọi này chưa được cài đặt trên máy tính" +"Định dạng video cần thiết cho cuộc gọi này chưa được cài đặt trên máy tính" -#: ../src/empathy-streamed-media-window.c:2403 +#: ../src/empathy-streamed-media-window.c:2277 +#: ../src/empathy-call-window.c:2059 #, c-format msgid "" "Something unexpected happened in a Telepathy component. Please <a href=\"%s" @@ -3068,143 +3377,167 @@ msgstr "" "<a href=\"%s\">thông báo lỗi này</a> và đính kèm thông tin từ cửa sổ \"Tìm " "lỗi\" trong menu Trợ giúp." -#: ../src/empathy-streamed-media-window.c:2411 +#: ../src/empathy-streamed-media-window.c:2285 +#: ../src/empathy-call-window.c:2068 msgid "There was a failure in the call engine" msgstr "Lỗi trong hệ thống gọi" -#: ../src/empathy-streamed-media-window.c:2414 +#: ../src/empathy-streamed-media-window.c:2288 +#: ../src/empathy-call-window.c:2071 msgid "The end of the stream was reached" msgstr "Đến cuối luồng" -#: ../src/empathy-streamed-media-window.c:2454 +#: ../src/empathy-streamed-media-window.c:2328 +#: ../src/empathy-call-window.c:2111 msgid "Can't establish audio stream" msgstr "Không thể tạo luồng âm thanh" -#: ../src/empathy-streamed-media-window.c:2464 +#: ../src/empathy-streamed-media-window.c:2338 +#: ../src/empathy-call-window.c:2121 msgid "Can't establish video stream" -msgstr "Không thể tạo luồng hình ảnh" +msgstr "Không thể tạo luồng video" -#: ../src/empathy-call-window.ui.h:1 +#: ../src/empathy-call-window.ui.h:1 ../src/empathy-preferences.ui.h:2 +#: ../src/empathy-streamed-media-window.ui.h:1 msgid "Audio" -msgstr "Tiếng" - -#: ../src/empathy-call-window.ui.h:2 -msgid "Call the contact again" -msgstr "Gọi lại lần nữa" +msgstr "Âm thanh" #: ../src/empathy-call-window.ui.h:3 -msgid "Camera Off" -msgstr "Tắt máy quay" +#: ../src/empathy-streamed-media-window.ui.h:5 +msgid "Decoding Codec:" +msgstr "Codec giải mã:" #: ../src/empathy-call-window.ui.h:4 -msgid "Camera On" -msgstr "Bật máy quay" +msgid "Disable camera" +msgstr "Tắt camera" #: ../src/empathy-call-window.ui.h:5 -msgid "Decoding Codec:" -msgstr "Codec giải mã:" +msgid "Display the dialpad" +msgstr "Hiện bảng bấm số điện thoại" #: ../src/empathy-call-window.ui.h:6 -msgid "Disable camera and stop sending video" -msgstr "Tắt máy quay và ngừng truyền hình" +#: ../src/empathy-streamed-media-window.ui.h:9 +msgid "Encoding Codec:" +msgstr "Codec mã hoá:" #: ../src/empathy-call-window.ui.h:7 -msgid "Enable camera and send video" -msgstr "Bật máy quay và truyền hình" +#: ../src/empathy-streamed-media-window.ui.h:10 +msgid "Hang up" +msgstr "Ngừng cuộc gọi" #: ../src/empathy-call-window.ui.h:8 -msgid "Enable camera but don't send video" -msgstr "Bật máy quay nhưng không truyền hình" +#: ../src/empathy-streamed-media-window.ui.h:11 +msgid "Hang up current call" +msgstr "Chấm dứt cuộc gọi hiện tại" #: ../src/empathy-call-window.ui.h:9 -msgid "Encoding Codec:" -msgstr "Codec mã hoá:" +#: ../src/empathy-streamed-media-window.ui.h:12 +msgid "Local Candidate:" +msgstr "Ứng cử viên cục bộ:" #: ../src/empathy-call-window.ui.h:10 -msgid "Hang up" -msgstr "Ngừng nói" +msgid "Maximise me" +msgstr "Phóng to" #: ../src/empathy-call-window.ui.h:11 -msgid "Hang up current call" -msgstr "Chấm dứt cuộc gọi hiện tại" +msgid "Minimise me" +msgstr "Thu nhỏ" #: ../src/empathy-call-window.ui.h:12 -msgid "Local Candidate:" -msgstr "Ứng cử viên cục bộ:" +#: ../src/empathy-streamed-media-window.ui.h:15 +msgid "Remote Candidate:" +msgstr "Ứng cử viên ở xa:" #: ../src/empathy-call-window.ui.h:13 -msgid "Preview" -msgstr "Xem trước" +#: ../src/empathy-streamed-media-window.ui.h:16 +msgid "Send Audio" +msgstr "Truyền tiếng" #: ../src/empathy-call-window.ui.h:14 -msgid "Redial" -msgstr "Gọi lại" +msgid "Send Video" +msgstr "Truyền video" #: ../src/empathy-call-window.ui.h:15 -msgid "Remote Candidate:" -msgstr "Ứng cử viên ở xa:" +msgid "Show dialpad" +msgstr "Hiện bảng bấm số điện thoại" #: ../src/empathy-call-window.ui.h:16 -msgid "Send Audio" -msgstr "Truyền tiếng" +msgid "Start a video call" +msgstr "Thực hiện cuộc video" #: ../src/empathy-call-window.ui.h:17 +msgid "Start an audio call" +msgstr "Thực hiện cuộc gọi thoại" + +#: ../src/empathy-call-window.ui.h:18 +#: ../src/empathy-streamed-media-window.ui.h:17 msgid "Toggle audio transmission" msgstr "Bật/tắt truyền tiếng" #: ../src/empathy-call-window.ui.h:19 -msgid "V_ideo" -msgstr "_Hình" +msgid "Toggle video transmission" +msgstr "Bật/tắt truyền video" #: ../src/empathy-call-window.ui.h:20 -msgid "Video" -msgstr "Hình" - -#: ../src/empathy-call-window.ui.h:21 -msgid "Video Off" -msgstr "Tắt hình" +#: ../src/empathy-streamed-media-window.ui.h:18 +#: ../src/empathy-call-window.c:1621 ../src/empathy-call-window.c:1622 +#: ../src/empathy-call-window.c:1623 ../src/empathy-call-window.c:1624 +msgid "Unknown" +msgstr "Không rõ" #: ../src/empathy-call-window.ui.h:22 -msgid "Video On" -msgstr "Bật hình" +msgid "Video call" +msgstr "Gọi video" #: ../src/empathy-call-window.ui.h:23 -msgid "Video Preview" -msgstr "Xem trước" - -#: ../src/empathy-call-window.ui.h:24 +#: ../src/empathy-streamed-media-window.ui.h:24 msgid "_Call" msgstr "_Gọi" -#: ../src/empathy-call-window.ui.h:25 ../src/empathy-main-window.ui.h:29 +#: ../src/empathy-call-window.ui.h:25 +msgid "_Microphone" +msgstr "_Micrô" + +#: ../src/empathy-call-window.ui.h:26 ../src/empathy-main-window.ui.h:30 +#: ../src/empathy-streamed-media-window.ui.h:25 msgid "_View" msgstr "_Xem" -#: ../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 chưa đọc)" -#: ../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 (và %u nữa)" -#: ../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 chưa đọc từ người khác)" -#: ../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 chưa đọc tất cả)" -#: ../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] "Đang gửi %d tin nhắn" + +#: ../src/empathy-chat-window.c:764 msgid "Typing a message." msgstr "Đang gõ tin nhắn." @@ -3216,10 +3549,6 @@ msgstr "_Dọn" msgid "C_ontact" msgstr "_Liên lạc" -#: ../src/empathy-chat-window.ui.h:3 -msgid "Chat" -msgstr "Trò chuyện" - #: ../src/empathy-chat-window.ui.h:4 msgid "Insert _Smiley" msgstr "_Chèn hình cười" @@ -3240,27 +3569,23 @@ msgstr "Dời thẻ sang _phải" msgid "Notify for All Messages" msgstr "Thông báo với mọi tin nhắn" -#: ../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 "Mụ_c lục" #: ../src/empathy-chat-window.ui.h:10 msgid "_Conversation" -msgstr "_Cuộc nói chuyện" +msgstr "_Cuộc trò chuyện" #: ../src/empathy-chat-window.ui.h:11 msgid "_Detach Tab" msgstr "Gỡ _ra thẻ" -#: ../src/empathy-chat-window.ui.h:12 ../src/empathy-main-window.ui.h:19 -msgid "_Edit" -msgstr "_Sửa" - #: ../src/empathy-chat-window.ui.h:13 msgid "_Favorite Chat Room" msgstr "Phòng trò chuyện ư_a thích" -#: ../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 "Trợ g_iúp" @@ -3284,15 +3609,15 @@ msgstr "_Thẻ" msgid "_Undo Close Tab" msgstr "_Phục hồi đóng thẻ" -#: ../src/empathy-chatrooms-window.c:241 +#: ../src/empathy-chatrooms-window.c:251 msgid "Name" msgstr "Tên" -#: ../src/empathy-chatrooms-window.c:259 +#: ../src/empathy-chatrooms-window.c:269 msgid "Room" msgstr "Phòng" -#: ../src/empathy-chatrooms-window.c:267 +#: ../src/empathy-chatrooms-window.c:277 msgid "Auto-Connect" msgstr "Tự động kết nối" @@ -3300,90 +3625,95 @@ msgstr "Tự động kết nối" msgid "Manage Favorite Rooms" msgstr "Quản lý phòng ưa thích" -#: ../src/empathy-event-manager.c:507 +#: ../src/empathy-event-manager.c:522 msgid "Incoming video call" -msgstr "Cuộc gọi hình đến" +msgstr "Cuộc gọi video đến" -#: ../src/empathy-event-manager.c:507 +#: ../src/empathy-event-manager.c:522 msgid "Incoming call" msgstr "Cuộc gọi gửi đến" -#: ../src/empathy-event-manager.c:511 +#: ../src/empathy-event-manager.c:526 #, c-format msgid "%s is video calling you. Do you want to answer?" -msgstr "%s đang gọi (hình). Bạn có muốn trả lời không?" +msgstr "%s đang gọi video. Bạn có muốn trả lời không?" -#: ../src/empathy-event-manager.c:512 +#: ../src/empathy-event-manager.c:527 #, c-format msgid "%s is calling you. Do you want to answer?" msgstr "%s đang gọi. Vạn có muốn đáp ứng không?" -#: ../src/empathy-event-manager.c:515 ../src/empathy-event-manager.c:667 +#: ../src/empathy-event-manager.c:530 ../src/empathy-event-manager.c:731 +#: ../src/empathy-event-manager.c:764 #, c-format msgid "Incoming call from %s" msgstr "Cuộc gọi gửi đến từ %s" -#: ../src/empathy-event-manager.c:540 +#: ../src/empathy-event-manager.c:555 msgid "_Reject" msgstr "_Từ chối" -#: ../src/empathy-event-manager.c:546 +#: ../src/empathy-event-manager.c:563 ../src/empathy-event-manager.c:571 msgid "_Answer" msgstr "T_rả lời" -#: ../src/empathy-event-manager.c:667 +#: ../src/empathy-event-manager.c:571 +msgid "_Answer with video" +msgstr "_Trả lời có video" + +#: ../src/empathy-event-manager.c:731 ../src/empathy-event-manager.c:764 #, c-format msgid "Incoming video call from %s" -msgstr "Cuộc gọi gửi đến từ %s" +msgstr "Cuộc gọi video gửi đến từ %s" -#: ../src/empathy-event-manager.c:744 +#: ../src/empathy-event-manager.c:837 msgid "Room invitation" msgstr "Mời vào phòng" -#: ../src/empathy-event-manager.c:746 +#: ../src/empathy-event-manager.c:839 #, c-format msgid "Invitation to join %s" msgstr "Mời tham gia %s" -#: ../src/empathy-event-manager.c:753 +#: ../src/empathy-event-manager.c:846 #, c-format msgid "%s is inviting you to join %s" msgstr "%s mời bạn tham gia %s" -#: ../src/empathy-event-manager.c:761 +#: ../src/empathy-event-manager.c:854 msgid "_Decline" msgstr "_Từ chối" -#: ../src/empathy-event-manager.c:766 +#: ../src/empathy-event-manager.c:859 #: ../src/empathy-new-chatroom-dialog.ui.h:7 msgid "_Join" -msgstr "_Vào" +msgstr "_Tham gia" -#: ../src/empathy-event-manager.c:793 +#: ../src/empathy-event-manager.c:886 #, c-format msgid "%s invited you to join %s" msgstr "%s đã mời bạn tham gia %s" -#: ../src/empathy-event-manager.c:799 +#: ../src/empathy-event-manager.c:892 #, c-format msgid "You have been invited to join %s" msgstr "Bạn được mời tham gia %s" -#: ../src/empathy-event-manager.c:850 +#: ../src/empathy-event-manager.c:943 #, c-format msgid "Incoming file transfer from %s" msgstr "Tập tin gửi đến từ %s" -#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:370 +#: ../src/empathy-event-manager.c:1135 ../src/empathy-main-window.c:375 msgid "Password required" msgstr "Cần mật khẩu" -#: ../src/empathy-event-manager.c:1076 +#: ../src/empathy-event-manager.c:1191 #, c-format msgid "%s would like permission to see when you are online" msgstr "%s muốn được phép thấy bạn khi trực tuyến" -#: ../src/empathy-event-manager.c:1080 +#: ../src/empathy-event-manager.c:1195 #, c-format msgid "" "\n" @@ -3393,105 +3723,101 @@ msgstr "" " Thông điệp: %s" #. Translators: time left, when it is more than one hour -#: ../src/empathy-ft-manager.c:99 +#: ../src/empathy-ft-manager.c:100 #, c-format msgid "%u:%02u.%02u" msgstr "%u:%02u.%02u" #. Translators: time left, when is is less than one hour -#: ../src/empathy-ft-manager.c:102 +#: ../src/empathy-ft-manager.c:103 #, c-format msgid "%02u.%02u" msgstr "%02u.%02u" -#: ../src/empathy-ft-manager.c:178 +#: ../src/empathy-ft-manager.c:179 msgctxt "file transfer percent" msgid "Unknown" msgstr "Không rõ" -#: ../src/empathy-ft-manager.c:273 +#: ../src/empathy-ft-manager.c:274 #, c-format msgid "%s of %s at %s/s" msgstr "%s trên %s, %s/s" -#: ../src/empathy-ft-manager.c:274 +#: ../src/empathy-ft-manager.c:275 #, c-format msgid "%s of %s" msgstr "%s trên %s" #. translators: first %s is filename, second %s is the contact name -#: ../src/empathy-ft-manager.c:305 +#: ../src/empathy-ft-manager.c:306 #, c-format msgid "Receiving \"%s\" from %s" -msgstr "Đang nhận « %s » từ %s" +msgstr "Đang nhận \"%s\" từ %s" #. translators: first %s is filename, second %s is the contact name -#: ../src/empathy-ft-manager.c:308 +#: ../src/empathy-ft-manager.c:309 #, c-format msgid "Sending \"%s\" to %s" -msgstr "Đang gửi « %s » cho %s" +msgstr "Đang gửi \"%s\" cho %s" #. translators: first %s is filename, second %s #. * is the contact name -#: ../src/empathy-ft-manager.c:338 +#: ../src/empathy-ft-manager.c:339 #, c-format msgid "Error receiving \"%s\" from %s" msgstr "Lỗi nhận \"%s\" từ %s" -#: ../src/empathy-ft-manager.c:341 +#: ../src/empathy-ft-manager.c:342 msgid "Error receiving a file" msgstr "Lỗi nhận tập tin" -#: ../src/empathy-ft-manager.c:346 +#: ../src/empathy-ft-manager.c:347 #, c-format msgid "Error sending \"%s\" to %s" msgstr "Lỗi gửi \"%s\" đến %s" -#: ../src/empathy-ft-manager.c:349 +#: ../src/empathy-ft-manager.c:350 msgid "Error sending a file" msgstr "Lỗi gửi tập tin" #. translators: first %s is filename, second %s #. * is the contact name -#: ../src/empathy-ft-manager.c:488 +#: ../src/empathy-ft-manager.c:489 #, c-format msgid "\"%s\" received from %s" -msgstr "« %s » được nhận từ %s" +msgstr "\"%s\" được nhận từ %s" #. translators: first %s is filename, second %s #. * is the contact name -#: ../src/empathy-ft-manager.c:493 +#: ../src/empathy-ft-manager.c:494 #, c-format msgid "\"%s\" sent to %s" -msgstr "« %s » được gửi cho %s" +msgstr "\"%s\" được gửi cho %s" -#: ../src/empathy-ft-manager.c:496 +#: ../src/empathy-ft-manager.c:497 msgid "File transfer completed" msgstr "Hoàn tất truyền tập tin" -#: ../src/empathy-ft-manager.c:615 ../src/empathy-ft-manager.c:782 +#: ../src/empathy-ft-manager.c:616 ../src/empathy-ft-manager.c:780 msgid "Waiting for the other participant's response" msgstr "Đang đợi trả lời từ bên kia" -#: ../src/empathy-ft-manager.c:641 ../src/empathy-ft-manager.c:679 +#: ../src/empathy-ft-manager.c:642 ../src/empathy-ft-manager.c:680 #, c-format msgid "Checking integrity of \"%s\"" msgstr "Đang kiểm tra tính toàn vẹn của \"%s\"" -#: ../src/empathy-ft-manager.c:644 ../src/empathy-ft-manager.c:682 +#: ../src/empathy-ft-manager.c:645 ../src/empathy-ft-manager.c:683 #, c-format msgid "Hashing \"%s\"" -msgstr "Đang tính mã nhận dạng cho \"%s\"" - -#: ../src/empathy-ft-manager.c:1016 -msgid "%" -msgstr "%" +msgstr "Đang tính mã hash cho \"%s\"" -#: ../src/empathy-ft-manager.c:1028 +#: ../src/empathy-ft-manager.c:1038 msgid "File" msgstr "Tập tin" -#: ../src/empathy-ft-manager.c:1050 +#: ../src/empathy-ft-manager.c:1060 msgid "Remaining" msgstr "Còn lại" @@ -3502,7 +3828,8 @@ msgstr "Truyền tập tin" #: ../src/empathy-ft-manager.ui.h:2 msgid "Remove completed, canceled and failed file transfers from the list" msgstr "" -"Gỡ bỏ khỏi danh sách các việc truyền tập tin là hoàn tất, bị thôi hay bị lỗi" +"Xóa bỏ những lần truyền tập tin đã hoàn tất, bị ngừng hay bị lỗi khỏi danh " +"sách" #: ../src/empathy-import-dialog.c:84 msgid "" @@ -3510,7 +3837,7 @@ msgid "" "importing accounts from Pidgin." msgstr "" "Không tìm thấy tài khoản có thể nhập vào. Trình Empathy hiện thời chỉ hỗ trợ " -"chức năng nhập tài khoản từ Pidgin (đã Gaim)." +"chức năng nhập tài khoản từ Pidgin." #: ../src/empathy-import-dialog.c:199 msgid "Import Accounts" @@ -3529,39 +3856,55 @@ msgstr "Giao thức" msgid "Source" msgstr "Nguồn" -#: ../src/empathy-main-window.c:387 +#: ../src/empathy-main-window.c:392 msgid "Provide Password" msgstr "Cung cấp mật khẩu" -#: ../src/empathy-main-window.c:393 +#: ../src/empathy-main-window.c:398 msgid "Disconnect" msgstr "Ngắt kết nối" -#: ../src/empathy-main-window.c:533 +#: ../src/empathy-main-window.c:622 msgid "No match found" msgstr "Không tìm thấy" -#: ../src/empathy-main-window.c:688 +#: ../src/empathy-main-window.c:777 msgid "Reconnect" msgstr "Tái kết nối" -#: ../src/empathy-main-window.c:694 +#: ../src/empathy-main-window.c:783 msgid "Edit Account" msgstr "Sửa tài khoản" -#: ../src/empathy-main-window.c:700 +#: ../src/empathy-main-window.c:789 msgid "Close" msgstr "Đóng" -#: ../src/empathy-main-window.c:1418 +#. Translators: this string will be something like: +#. * Top up My Account ($1.23)..." +#: ../src/empathy-main-window.c:928 +#, c-format +msgid "Top up %s (%s)..." +msgstr "Nạp tiền %s (%s)" + +#: ../src/empathy-main-window.c:975 +msgid "Top up account credit" +msgstr "Nạp tiền vào tài khoản" + +#. top up button +#: ../src/empathy-main-window.c:1050 +msgid "Top Up..." +msgstr "Nạp tiền..." + +#: ../src/empathy-main-window.c:1817 msgid "Contact" msgstr "Liên lạc" -#: ../src/empathy-main-window.c:1765 +#: ../src/empathy-main-window.c:2169 msgid "Contact List" msgstr "Danh sách Liên lạc" -#: ../src/empathy-main-window.c:1881 +#: ../src/empathy-main-window.c:2287 msgid "Show and edit accounts" msgstr "Hiện và sửa tài khoản" @@ -3570,86 +3913,90 @@ msgid "Contacts on a _Map" msgstr "Liên lạc trên _bản đồ" #: ../src/empathy-main-window.ui.h:2 -msgid "Find in Contact _List" -msgstr "Tìm trong danh sách liên lạc" +msgid "Credit Balance" +msgstr "Cân bằng tín dụng" #: ../src/empathy-main-window.ui.h:3 +msgid "Find in Contact _List" +msgstr "Tìm trong _danh sách liên lạc" + +#: ../src/empathy-main-window.ui.h:4 msgid "Join _Favorites" msgstr "_Vào Ưa thích" -#: ../src/empathy-main-window.ui.h:4 +#: ../src/empathy-main-window.ui.h:5 msgid "Manage Favorites" msgstr "Quản lý Ưa thích" -#: ../src/empathy-main-window.ui.h:5 +#: ../src/empathy-main-window.ui.h:6 msgid "N_ormal Size" msgstr "Cỡ _thường" -#: ../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 "_Cuộc gọi mới…" -#: ../src/empathy-main-window.ui.h:7 +#: ../src/empathy-main-window.ui.h:8 msgid "Normal Size With _Avatars" -msgstr "Ảnh riêng cỡ _thường" +msgstr "Cỡ _thường có ảnh đại diện" -#: ../src/empathy-main-window.ui.h:8 +#: ../src/empathy-main-window.ui.h:9 msgid "P_references" msgstr "_Tùy thích" -#: ../src/empathy-main-window.ui.h:9 +#: ../src/empathy-main-window.ui.h:10 msgid "Show P_rotocols" msgstr "_Hiện giao thức" -#: ../src/empathy-main-window.ui.h:10 +#: ../src/empathy-main-window.ui.h:11 msgid "Sort by _Name" msgstr "Sắp theo tê_n" -#: ../src/empathy-main-window.ui.h:11 +#: ../src/empathy-main-window.ui.h:12 msgid "Sort by _Status" -msgstr "Sắp theo _tình trạng" +msgstr "Sắp theo _trạng thái" -#: ../src/empathy-main-window.ui.h:12 +#: ../src/empathy-main-window.ui.h:13 msgid "_Accounts" msgstr "_Tài khoản" -#: ../src/empathy-main-window.ui.h:14 +#: ../src/empathy-main-window.ui.h:15 msgid "_Blocked Contacts" msgstr "Liên lạc bị _chặn" -#: ../src/empathy-main-window.ui.h:16 +#: ../src/empathy-main-window.ui.h:17 msgid "_Compact Size" msgstr "Cỡ _gọn" -#: ../src/empathy-main-window.ui.h:18 +#: ../src/empathy-main-window.ui.h:19 msgid "_Debug" msgstr "_Tìm lỗi" -#: ../src/empathy-main-window.ui.h:20 +#: ../src/empathy-main-window.ui.h:21 msgid "_File Transfers" msgstr "Truyền tập tin" -#: ../src/empathy-main-window.ui.h:22 +#: ../src/empathy-main-window.ui.h:23 msgid "_Join…" msgstr "_Tham gia…" -#: ../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 "_Cuộc nói chuyện mới…" +msgstr "_Cuộc trò chuyện mới…" -#: ../src/empathy-main-window.ui.h:24 +#: ../src/empathy-main-window.ui.h:25 msgid "_Offline Contacts" msgstr "Liên lạc ng_oại tuyến" -#: ../src/empathy-main-window.ui.h:25 +#: ../src/empathy-main-window.ui.h:26 msgid "_Personal Information" msgstr "T_hông tin cá nhân" -#: ../src/empathy-main-window.ui.h:27 +#: ../src/empathy-main-window.ui.h:28 msgid "_Room" msgstr "_Phòng" -#: ../src/empathy-main-window.ui.h:28 +#: ../src/empathy-main-window.ui.h:29 msgid "_Search for Contacts…" msgstr "_Tìm liên lạc…" @@ -3663,7 +4010,7 @@ msgstr "Thành viên" #. 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" @@ -3676,18 +4023,18 @@ msgstr "" "Cần mật khẩu: %s\n" "Thành viên: %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 "Không" -#: ../src/empathy-new-chatroom-dialog.c:591 +#: ../src/empathy-new-chatroom-dialog.c:584 msgid "Could not start room listing" msgstr "Không thể lấy danh sách phòng" -#: ../src/empathy-new-chatroom-dialog.c:601 +#: ../src/empathy-new-chatroom-dialog.c:594 msgid "Could not stop room listing" -msgstr "Không thể ngừng danh sách phòng" +msgstr "Không thể ngừng lấy danh sách phòng" #: ../src/empathy-new-chatroom-dialog.ui.h:2 msgid "Couldn't load room list" @@ -3719,39 +4066,79 @@ msgstr "Danh sách phòng" msgid "_Room:" msgstr "_Phòng:" -#: ../src/empathy-preferences.c:139 +#: ../src/empathy-preferences.c:160 msgid "Message received" msgstr "Nhận được tin nhắn" -#: ../src/empathy-preferences.c:140 +#: ../src/empathy-preferences.c:161 msgid "Message sent" -msgstr "tin nhắn được gửi" +msgstr "Tin nhắn được gửi" -#: ../src/empathy-preferences.c:141 +#: ../src/empathy-preferences.c:162 msgid "New conversation" -msgstr "Cuộc trao đổi mới" +msgstr "Cuộc trò chuyện mới" -#: ../src/empathy-preferences.c:142 +#: ../src/empathy-preferences.c:163 msgid "Contact goes online" msgstr "Liên lạc mới trực tuyến" -#: ../src/empathy-preferences.c:143 +#: ../src/empathy-preferences.c:164 msgid "Contact goes offline" msgstr "Liên lạc mới ngoại tuyến" -#: ../src/empathy-preferences.c:144 +#: ../src/empathy-preferences.c:165 msgid "Account connected" msgstr "Tài khoản đã kết nối" -#: ../src/empathy-preferences.c:145 +#: ../src/empathy-preferences.c:166 msgid "Account disconnected" msgstr "Tài khoản bị ngắt kết nối" -#: ../src/empathy-preferences.c:446 +#: ../src/empathy-preferences.c:469 msgid "Language" msgstr "Ngôn ngữ" -#: ../src/empathy-preferences.c:875 +#. translators: Contact name for the chat theme preview +#: ../src/empathy-preferences.c:719 +msgid "Juliet" +msgstr "Juliet" + +#. translators: Contact name for the chat theme preview +#: ../src/empathy-preferences.c:726 +msgid "Romeo" +msgstr "Romeo" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:732 +msgid "O Romeo, Romeo, wherefore art thou Romeo?" +msgstr "Ôi Romeo, Romeo, tại sao chàng lại là Romeo?" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:735 +msgid "Deny thy father and refuse thy name;" +msgstr "Chàng hãy khước từ cha và vứt bỏ tên họ ấy đi" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:738 +msgid "Or if thou wilt not, be but sworn my love" +msgstr "Nếu không thể thì chàng hãy thề yêu em" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:741 +msgid "And I'll no longer be a Capulet." +msgstr "Và em sẽ không còn là người nhà Capulet." + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:744 +msgid "Shall I hear more, or shall I speak at this?" +msgstr "Ta nên nghe thêm hay ta nên mở lời?" + +#. translators: Quote from Romeo & Julier, for chat theme preview +#: ../src/empathy-preferences.c:747 +msgid "Juliet has disconnected" +msgstr "Juliet đã ngắt kết nối" + +#: ../src/empathy-preferences.c:1153 msgid "Preferences" msgstr "Tùy thích" @@ -3759,67 +4146,75 @@ msgstr "Tùy thích" msgid "Appearance" msgstr "Diện mạo" -#: ../src/empathy-preferences.ui.h:2 +#: ../src/empathy-preferences.ui.h:3 msgid "Behavior" msgstr "Ứng xử" -#: ../src/empathy-preferences.ui.h:3 +#: ../src/empathy-preferences.ui.h:5 msgid "Chat Th_eme:" msgstr "_Sắc thái trò chuyện: " -#: ../src/empathy-preferences.ui.h:4 +#: ../src/empathy-preferences.ui.h:6 msgid "Disable notifications when _away or busy" msgstr "Tắt thông báo khi vắng mặt h_ay bận" -#: ../src/empathy-preferences.ui.h:5 +#: ../src/empathy-preferences.ui.h:7 msgid "Disable sounds when _away or busy" msgstr "Tắt phát âm khi vắng mặt h_ay bận" -#: ../src/empathy-preferences.ui.h:6 +#: ../src/empathy-preferences.ui.h:8 msgid "Display incoming events in the notification area" msgstr "Hiện sự kiện đến trong vùng trạng thái" -#: ../src/empathy-preferences.ui.h:7 +#: ../src/empathy-preferences.ui.h:9 msgid "Enable notifications when a contact comes online" msgstr "Bật thông báo khi liên lạc trực tuyến" -#: ../src/empathy-preferences.ui.h:8 +#: ../src/empathy-preferences.ui.h:10 msgid "Enable notifications when a contact goes offline" msgstr "Bật thông báo khi liên lạc ngoại tuyến" -#: ../src/empathy-preferences.ui.h:9 +#: ../src/empathy-preferences.ui.h:11 msgid "Enable notifications when the _chat is not focused" msgstr "Thông báo khi _cửa sổ trò chuyện không có tiêu điểm" -#: ../src/empathy-preferences.ui.h:10 +#: ../src/empathy-preferences.ui.h:12 msgid "Enable spell checking for languages:" msgstr "Bật kiểm tra chính tả cho ngôn ngữ:" -#: ../src/empathy-preferences.ui.h:11 +#: ../src/empathy-preferences.ui.h:13 msgid "General" msgstr "Chung" -#: ../src/empathy-preferences.ui.h:13 +#: ../src/empathy-preferences.ui.h:14 +msgid "Input level" +msgstr "Mức đầu vào" + +#: ../src/empathy-preferences.ui.h:15 +msgid "Input volume" +msgstr "Âm lượng vào" + +#: ../src/empathy-preferences.ui.h:17 msgid "Location sources:" msgstr "Nguồn vị trí:" -#: ../src/empathy-preferences.ui.h:14 +#: ../src/empathy-preferences.ui.h:18 msgid "Log conversations" msgstr "Ghi lại cuộc trò chuyện" -#: ../src/empathy-preferences.ui.h:15 +#: ../src/empathy-preferences.ui.h:19 msgid "Notifications" msgstr "Thông báo" -#: ../src/empathy-preferences.ui.h:16 +#: ../src/empathy-preferences.ui.h:20 msgid "Play sound for events" msgstr "Phát âm về sự kiện" -#: ../src/empathy-preferences.ui.h:17 +#: ../src/empathy-preferences.ui.h:21 msgid "Privacy" msgstr "Riêng tư" -#: ../src/empathy-preferences.ui.h:18 +#: ../src/empathy-preferences.ui.h:22 msgid "" "Reduced location accuracy means that nothing more precise than your city, " "state and country will be published. GPS coordinates will be accurate to 1 " @@ -3828,23 +4223,23 @@ msgstr "" "Giảm độ chính xác nghĩa là chỉ công bố vị trí của bạn đến mức thành phố, " "bang và quốc gia. Toạ độ GPS có thể chính xác đến 1 chữ số." -#: ../src/empathy-preferences.ui.h:19 +#: ../src/empathy-preferences.ui.h:23 msgid "Show _smileys as images" msgstr "HIện _hình cười dạng ảnh" -#: ../src/empathy-preferences.ui.h:20 +#: ../src/empathy-preferences.ui.h:24 msgid "Show contact _list in rooms" msgstr "_Hiện danh sách liên lạc trong phòng" -#: ../src/empathy-preferences.ui.h:21 +#: ../src/empathy-preferences.ui.h:25 msgid "Sounds" msgstr "Âm thanh" -#: ../src/empathy-preferences.ui.h:22 +#: ../src/empathy-preferences.ui.h:26 msgid "Spell Checking" msgstr "Kiểm tra chính tả" -#: ../src/empathy-preferences.ui.h:23 +#: ../src/empathy-preferences.ui.h:27 msgid "" "The list of languages reflects only the languages for which you have a " "dictionary installed." @@ -3852,44 +4247,48 @@ msgstr "" "Danh sách ngôn ngữ này phản ánh chỉ những ngôn ngữ cho mà bạn đã cài đặt từ " "điển." -#: ../src/empathy-preferences.ui.h:24 +#: ../src/empathy-preferences.ui.h:28 msgid "Themes" msgstr "Sắc thái" -#: ../src/empathy-preferences.ui.h:25 +#: ../src/empathy-preferences.ui.h:29 +msgid "Variant:" +msgstr "Biến thể:" + +#: ../src/empathy-preferences.ui.h:30 msgid "_Automatically connect on startup" msgstr "Tự động kết nối khi khởi _chạy" -#: ../src/empathy-preferences.ui.h:26 +#: ../src/empathy-preferences.ui.h:31 msgid "_Cellphone" msgstr "Điện thoại _di đông" -#: ../src/empathy-preferences.ui.h:27 +#: ../src/empathy-preferences.ui.h:32 msgid "_Enable bubble notifications" msgstr "_Bật thông báo trong bóng" -#: ../src/empathy-preferences.ui.h:28 +#: ../src/empathy-preferences.ui.h:33 msgid "_Enable sound notifications" msgstr "_Phát âm thông báo" -#: ../src/empathy-preferences.ui.h:29 +#: ../src/empathy-preferences.ui.h:34 msgid "_GPS" msgstr "_GPS" -#: ../src/empathy-preferences.ui.h:30 +#: ../src/empathy-preferences.ui.h:35 msgid "_Network (IP, Wi-Fi)" msgstr "_Mạng (IP, Wi-Fi)" -#: ../src/empathy-preferences.ui.h:31 +#: ../src/empathy-preferences.ui.h:36 msgid "_Open new chats in separate windows" msgstr "Mở cuộc trò chuyện mới tr_ong cửa sổ riêng" -#: ../src/empathy-preferences.ui.h:32 +#: ../src/empathy-preferences.ui.h:37 msgid "_Publish location to my contacts" msgstr "_Công bố vị trí cho bạn bè tôi" #. To translators: The longitude and latitude are rounded to closest 0,1 degrees, so for example 146,2345° is rounded to round(146,2345*10)/10 = 146,2 degrees. -#: ../src/empathy-preferences.ui.h:34 +#: ../src/empathy-preferences.ui.h:39 msgid "_Reduce location accuracy" msgstr "_Giảm độ chính xác vị trí" @@ -3901,7 +4300,55 @@ msgstr "Trạng thái" msgid "_Quit" msgstr "T_hoát" -#: ../src/empathy-map-view.c:442 +#: ../src/empathy-streamed-media-window.ui.h:2 +msgid "Call the contact again" +msgstr "Gọi lại lần nữa" + +#: ../src/empathy-streamed-media-window.ui.h:3 +msgid "Camera Off" +msgstr "Tắt máy quay" + +#: ../src/empathy-streamed-media-window.ui.h:4 +msgid "Camera On" +msgstr "Bật máy quay" + +#: ../src/empathy-streamed-media-window.ui.h:6 +msgid "Disable camera and stop sending video" +msgstr "Tắt máy quay và ngừng truyền video" + +#: ../src/empathy-streamed-media-window.ui.h:7 +msgid "Enable camera and send video" +msgstr "Bật máy quay và truyền video" + +#: ../src/empathy-streamed-media-window.ui.h:8 +msgid "Enable camera but don't send video" +msgstr "Bật máy quay nhưng không truyền video" + +#: ../src/empathy-streamed-media-window.ui.h:13 +msgid "Preview" +msgstr "Xem trước" + +#: ../src/empathy-streamed-media-window.ui.h:14 +msgid "Redial" +msgstr "Gọi lại" + +#: ../src/empathy-streamed-media-window.ui.h:19 +msgid "V_ideo" +msgstr "_Video" + +#: ../src/empathy-streamed-media-window.ui.h:21 +msgid "Video Off" +msgstr "Tắt video" + +#: ../src/empathy-streamed-media-window.ui.h:22 +msgid "Video On" +msgstr "Bật video" + +#: ../src/empathy-streamed-media-window.ui.h:23 +msgid "Video Preview" +msgstr "Xem trước" + +#: ../src/empathy-map-view.c:448 msgid "Contact Map View" msgstr "Xem bản đồ danh sách" @@ -3919,7 +4366,7 @@ msgstr "Tạm ngừng" #: ../src/empathy-debug-window.c:1488 msgid "Level " -msgstr "Cấp " +msgstr "Mức " #: ../src/empathy-debug-window.c:1508 msgid "Debug" @@ -3959,7 +4406,7 @@ msgstr "Phân loại" #: ../src/empathy-debug-window.c:1564 msgid "Level" -msgstr "Cấp" +msgstr "Mức" #: ../src/empathy-debug-window.c:1601 msgid "" @@ -3967,16 +4414,16 @@ msgid "" "extension." msgstr "Trình quản lý kết nối được chọn không hỗ trợ tìm lỗi từ xa" -#: ../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 "Mời người tham gia" -#: ../src/empathy-invite-participant-dialog.c:35 +#: ../src/empathy-invite-participant-dialog.c:430 msgid "Choose a contact to invite into the conversation:" msgstr "Chọn liên lạc muốn mời trò chuyện:" -#: ../src/empathy-invite-participant-dialog.c:45 +#: ../src/empathy-invite-participant-dialog.c:473 msgid "Invite" msgstr "Mời" @@ -4016,37 +4463,102 @@ msgstr "Trình gỡ lỗi Empathy" msgid "- Empathy Chat Client" msgstr "— Trình trò chuyện Empathy" -#: ../src/empathy-notifications-approver.c:184 +#: ../src/empathy-notifications-approver.c:203 msgid "Respond" msgstr "Trả lời" -#: ../src/empathy-notifications-approver.c:190 +#: ../src/empathy-notifications-approver.c:217 msgid "Reject" msgstr "Từ chối" -#: ../src/empathy-notifications-approver.c:194 +#: ../src/empathy-notifications-approver.c:222 +#: ../src/empathy-notifications-approver.c:227 msgid "Answer" msgstr "Trả lời" -#: ../src/empathy-notifications-approver.c:201 -#: ../src/empathy-notifications-approver.c:211 +#: ../src/empathy-notifications-approver.c:227 +msgid "Answer with video" +msgstr "Trả lời cuộc gọi có video" + +#: ../src/empathy-notifications-approver.c:235 +#: ../src/empathy-notifications-approver.c:245 msgid "Decline" msgstr "Từ chối" -#: ../src/empathy-notifications-approver.c:205 -#: ../src/empathy-notifications-approver.c:216 +#: ../src/empathy-notifications-approver.c:239 +#: ../src/empathy-notifications-approver.c:250 msgid "Accept" msgstr "Chấp nhận" -#: ../src/empathy-call-observer.c:130 -#, c-format -msgid "Missed call from %s" -msgstr "Nhỡ cuộc gọi từ %s" +#: ../src/empathy-notifications-approver.c:260 +msgid "Provide" +msgstr "Cung cấp" -#: ../src/empathy-call-observer.c:133 +#: ../src/empathy-call-observer.c:135 #, c-format msgid "%s just tried to call you, but you were in another call." -msgstr "%s vừa mới gọi nhưng bạn có một cuộc gọi khác." +msgstr "%s vừa mới gọi nhưng bạn lại đang nghe một cuộc gọi khác." + +#. Translators: this is an "Info" label. It should be as short +#. * as possible. +#: ../src/empathy-call-window.c:558 ../src/empathy-call-window.c:572 +msgid "i" +msgstr "i" + +#: ../src/empathy-call-window.c:1012 +#, c-format +msgid "Call with %d participants" +msgstr "Gọi cho %d người" + +#: ../src/empathy-call-window.c:1914 +msgid "On hold" +msgstr "Giữ máy" + +#: ../src/empathy-call-window.c:1917 +msgid "Mute" +msgstr "Câm" + +#: ../src/empathy-call-window.c:1919 +#| msgid "Location" +msgid "Duration" +msgstr "Khoảng thời gian" + +#. Translators: 'status - minutes:seconds' the caller has been connected +#: ../src/empathy-call-window.c:1922 +#, c-format +msgid "%s — %d:%02dm" +msgstr "%s — %d:%02dm" + +#: ../libempathy-gtk/empathy-search-bar.c:243 +msgid "_Match case" +msgstr "_Phân biệt hoa thường" + +#~ msgid "All" +#~ msgstr "Tất cả" + +#~ msgid "_Enabled" +#~ msgstr "_Bật" + +#~ msgid "Date" +#~ msgstr "Ngày" + +#~ msgid "Conversations" +#~ msgstr "Cuộc nói chuyện" + +#~ msgid "Previous Conversations" +#~ msgstr "Cuộc nói chuyện trước" + +#~ msgid "_For:" +#~ msgstr "_Tìm:" + +#~ msgid "Enter Custom Message" +#~ msgstr "Nhập dòng trạng thái riêng" + +#~ msgid "Save _New Status Message" +#~ msgstr "_Lưu dòng trạng thái mới" + +#~ msgid "Saved Status Messages" +#~ msgstr "Dòng trạng thái đã lưu" #~| msgid "Send and receive instant messages" #~ msgid "Send and receive messages" @@ -4061,9 +4573,6 @@ msgstr "%s vừa mới gọi nhưng bạn có một cuộc gọi khác." #~ msgid "MC 4 accounts have been imported." #~ msgstr "Đã nhập tài khoản MC 4." -#~ msgid "Salut account is created" -#~ msgstr "Tài khoản Salut được tạo" - #~ msgid "" #~ "Whether or not Empathy has asked about importing accounts from other " #~ "programs." @@ -4163,9 +4672,6 @@ msgstr "%s vừa mới gọi nhưng bạn có một cuộc gọi khác." #~ msgid "_Next" #~ msgstr "_Tiếp" -#~ msgid "Accounts" -#~ msgstr "Tài khoản" - #~ msgid "Add new" #~ msgstr "Thêm mới" @@ -4237,9 +4743,6 @@ msgstr "%s vừa mới gọi nhưng bạn có một cuộc gọi khác." #~ msgid "_Check Word Spelling..." #~ msgstr "_Kiểm tra chính tả từ..." -#~ msgid "<b>Topic:</b>" -#~ msgstr "<b>Chủ đề:</b>" - #~ msgid "Group Chat" #~ msgstr "Trò chuyện nhóm" @@ -4410,6 +4913,3 @@ msgstr "%s vừa mới gọi nhưng bạn có một cuộc gọi khác." #~ msgid "Show _avatars" #~ msgstr "Hiện ảnh _riêng" - -#~ msgid "Show co_mpact contact list" -#~ msgstr "Hiện danh sách liên lạc tó_m gọn" diff --git a/src/Makefile.am b/src/Makefile.am index b2222c2e9..cf5069fc6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -173,8 +173,12 @@ empathy_call_SOURCES = \ empathy-preferences.h \ ev-sidebar.c \ ev-sidebar.h \ + empathy-camera-menu.c \ + empathy-camera-menu.h \ empathy-mic-menu.c \ - empathy-mic-menu.h + empathy-mic-menu.h \ + empathy-rounded-actor.c \ + empathy-rounded-actor.h nodist_empathy_call_SOURCES = $(BUILT_SOURCES) diff --git a/src/empathy-audio-sink.c b/src/empathy-audio-sink.c index c410d7a30..3d4496cd1 100644 --- a/src/empathy-audio-sink.c +++ b/src/empathy-audio-sink.c @@ -23,10 +23,16 @@ #include <stdlib.h> #include <gst/audio/audio.h> -#include <gst/farsight/fs-element-added-notifier.h> +#include <gst/interfaces/streamvolume.h> + +#include <telepathy-glib/telepathy-glib.h> + +#include <libempathy-gtk/empathy-call-utils.h> #include "empathy-audio-sink.h" +#define DEBUG_FLAG EMPATHY_DEBUG_VOIP +#include <libempathy/empathy-debug.h> G_DEFINE_TYPE(EmpathyGstAudioSink, empathy_audio_sink, GST_TYPE_BIN) @@ -39,36 +45,6 @@ enum static guint signals[LAST_SIGNAL] = {0}; #endif -typedef struct { - GstPad *pad; - GstElement *bin; - GstElement *volume; - GstElement *sink; -} AudioBin; - -static AudioBin * -audio_bin_new (GstPad *pad, - GstElement *bin, - GstElement *volume, - GstElement *sink) -{ - AudioBin *result = g_slice_new0 (AudioBin); - - result->pad = pad; - result->bin = bin; - result->volume = gst_object_ref (volume); - result->sink = sink; - - return result; -} - -static void -audio_bin_free (AudioBin *bin) -{ - gst_object_unref (bin->volume); - g_slice_free (AudioBin, bin); -} - static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE( "sink%d", @@ -84,16 +60,7 @@ enum { struct _EmpathyGstAudioSinkPrivate { - gboolean dispose_has_run; - FsElementAddedNotifier *notifier; - - gdouble volume; - - /* Pad -> *owned* subbin hash */ - GHashTable *audio_bins; - - /* Mutex to hold while change the hash table */ - GMutex *audio_bins_lock; + GstElement *sink; }; #define EMPATHY_GST_AUDIO_SINK_GET_PRIVATE(o) \ @@ -101,72 +68,11 @@ struct _EmpathyGstAudioSinkPrivate EmpathyGstAudioSinkPrivate)) static void -empathy_audio_sink_element_added_cb (FsElementAddedNotifier *notifier, - GstBin *bin, GstElement *element, EmpathyGstAudioSink *self) -{ - EmpathyGstAudioSinkPrivate *priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (self); - - if (g_object_class_find_property (G_OBJECT_GET_CLASS (element), "volume")) - { - /* An element was added with a volume property, lets find its subbin and - * update the volume in it */ - GHashTableIter iter; - AudioBin *audio_bin = NULL; - gpointer value; - - g_mutex_lock (self->priv->audio_bins_lock); - g_hash_table_iter_init (&iter, priv->audio_bins); - - while (g_hash_table_iter_next (&iter, NULL, &value)) - { - AudioBin *b = value; - - if (gst_object_has_ancestor (GST_OBJECT (element), - GST_OBJECT (b->bin))) - { - audio_bin = b; - break; - } - } - - if (audio_bin == NULL) - { - g_warning ("Element added that doesn't belong to us ?"); - return; - } - - /* Set the old volume to 1 and the new volume to the volume */ - g_object_set (audio_bin->volume, "volume", 1.0, NULL); - gst_object_unref (audio_bin->volume); - - audio_bin->volume = gst_object_ref (element); - g_object_set (audio_bin->volume, "volume", self->priv->volume, NULL); - g_mutex_unlock (self->priv->audio_bins_lock); - } -} - -static void empathy_audio_sink_init (EmpathyGstAudioSink *self) { - EmpathyGstAudioSinkPrivate *priv; - - priv = self->priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (self); - - priv->volume = 1.0; - - priv->audio_bins = g_hash_table_new_full (g_direct_hash, g_direct_equal, - NULL, (GDestroyNotify) audio_bin_free); - - priv->audio_bins_lock = g_mutex_new (); - - priv->notifier = fs_element_added_notifier_new (); - g_signal_connect (priv->notifier, "element-added", - G_CALLBACK (empathy_audio_sink_element_added_cb), self); + self->priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (self); } -static void empathy_audio_sink_dispose (GObject *object); -static void empathy_audio_sink_finalize (GObject *object); - static GstPad * empathy_audio_sink_request_new_pad (GstElement *self, GstPadTemplate *templ, const gchar* name); @@ -219,9 +125,6 @@ empathy_audio_sink_class_init (EmpathyGstAudioSinkClass g_type_class_add_private (empathy_audio_sink_class, sizeof (EmpathyGstAudioSinkPrivate)); - object_class->dispose = empathy_audio_sink_dispose; - object_class->finalize = empathy_audio_sink_finalize; - object_class->set_property = empathy_audio_sink_set_property; object_class->get_property = empathy_audio_sink_get_property; @@ -234,45 +137,6 @@ empathy_audio_sink_class_init (EmpathyGstAudioSinkClass g_object_class_install_property (object_class, PROP_VOLUME, param_spec); } -void -empathy_audio_sink_dispose (GObject *object) -{ - EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (object); - EmpathyGstAudioSinkPrivate *priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (self); - - if (priv->dispose_has_run) - return; - - priv->dispose_has_run = TRUE; - - if (priv->notifier != NULL) - g_object_unref (priv->notifier); - priv->notifier = NULL; - - if (priv->audio_bins != NULL) - g_hash_table_unref (priv->audio_bins); - priv->audio_bins = NULL; - - if (priv->audio_bins_lock != NULL) - g_mutex_free (priv->audio_bins_lock); - priv->audio_bins_lock = NULL; - - if (G_OBJECT_CLASS (empathy_audio_sink_parent_class)->dispose) - G_OBJECT_CLASS (empathy_audio_sink_parent_class)->dispose (object); -} - -void -empathy_audio_sink_finalize (GObject *object) -{ - //EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (object); - //EmpathyGstAudioSinkPrivate *priv = - // EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (self); - - /* free any data held directly by the object here */ - - G_OBJECT_CLASS (empathy_audio_sink_parent_class)->finalize (object); -} - GstElement * empathy_audio_sink_new (void) { @@ -287,32 +151,75 @@ empathy_audio_sink_new (void) return gst_element_factory_make ("empathyaudiosink", NULL); } +static gboolean +check_volume_support (EmpathyGstAudioSink *self) +{ + gchar *name; + + if (GST_IS_STREAM_VOLUME (self->priv->sink)) + return TRUE; + + name = gst_element_get_name (self->priv->sink); + DEBUG ("Element %s doesn't support volume", name); + + g_free (name); + return FALSE; +} + void empathy_audio_sink_set_volume (EmpathyGstAudioSink *sink, gdouble volume) { EmpathyGstAudioSinkPrivate *priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (sink); - GHashTableIter iter; - gpointer value; - - priv->volume = volume; - - g_mutex_lock (priv->audio_bins_lock); - g_hash_table_iter_init (&iter, priv->audio_bins); - while (g_hash_table_iter_next (&iter, NULL, &value)) - { - AudioBin *b = value; - g_object_set (b->volume, "volume", volume, NULL); - } + if (!check_volume_support (sink)) + return; - g_mutex_unlock (priv->audio_bins_lock); + g_object_set (priv->sink, "volume", volume, NULL); } gdouble empathy_audio_sink_get_volume (EmpathyGstAudioSink *sink) { EmpathyGstAudioSinkPrivate *priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (sink); - return priv->volume; + gdouble volume; + + if (!check_volume_support (sink)) + return 1.0; + + g_object_get (priv->sink, "volume", &volume, NULL); + return volume; +} + +static GstElement * +create_sink (void) +{ + GstElement *sink; + const gchar *description; + + description = g_getenv ("EMPATHY_AUDIO_SINK"); + + if (description != NULL) + { + GError *error = NULL; + + sink = gst_parse_bin_from_description (description, TRUE, &error); + if (sink == NULL) + { + DEBUG ("Failed to create bin %s: %s", description, error->message); + g_error_free (error); + } + + return sink; + } + + /* Use pulsesink as default */ + sink = gst_element_factory_make ("pulsesink", NULL); + if (sink == NULL) + return NULL; + + empathy_call_set_stream_properties (sink); + + return sink; } static GstPad * @@ -321,10 +228,9 @@ empathy_audio_sink_request_new_pad (GstElement *element, const gchar* name) { EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (element); - GstElement *bin, *sink, *volume, *resample, *audioconvert0, *audioconvert1; + GstElement *bin, *volume, *resample, *audioconvert0, *audioconvert1; GstPad *pad = NULL; GstPad *subpad, *filterpad; - AudioBin *audiobin; bin = gst_bin_new (NULL); @@ -352,15 +258,14 @@ empathy_audio_sink_request_new_pad (GstElement *element, gst_bin_add (GST_BIN (bin), volume); - sink = gst_element_factory_make ("gconfaudiosink", NULL); - if (sink == NULL) + self->priv->sink = create_sink (); + if (self->priv->sink == NULL) goto error; - gst_bin_add (GST_BIN (bin), sink); - fs_element_added_notifier_add (self->priv->notifier, GST_BIN (sink)); + gst_bin_add (GST_BIN (bin), self->priv->sink); if (!gst_element_link_many (audioconvert0, resample, audioconvert1, - volume, sink, NULL)) + volume, self->priv->sink, NULL)) goto error; filterpad = gst_element_get_static_pad (audioconvert0, "sink"); @@ -372,25 +277,11 @@ empathy_audio_sink_request_new_pad (GstElement *element, if (!gst_element_add_pad (GST_ELEMENT (bin), subpad)) goto error; - - /* Ensure that state changes only happen _after_ the element has been added - * to the hash table. But add it to the bin first so we can create our - * ghostpad (if we create the ghostpad before adding it to the bin it will - * get unlinked) */ - gst_element_set_locked_state (GST_ELEMENT (bin), TRUE); gst_bin_add (GST_BIN (self), bin); pad = gst_ghost_pad_new (name, subpad); g_assert (pad != NULL); - audiobin = audio_bin_new (pad, bin, volume, sink); - - g_mutex_lock (self->priv->audio_bins_lock); - g_hash_table_insert (self->priv->audio_bins, pad, audiobin); - g_mutex_unlock (self->priv->audio_bins_lock); - - gst_element_set_locked_state (GST_ELEMENT (bin), FALSE); - if (!gst_element_sync_state_with_parent (bin)) goto error; @@ -400,16 +291,11 @@ empathy_audio_sink_request_new_pad (GstElement *element, if (!gst_element_add_pad (GST_ELEMENT (self), pad)) goto error; - return pad; error: if (pad != NULL) { - g_mutex_lock (self->priv->audio_bins_lock); - g_hash_table_remove (self->priv->audio_bins, pad); - g_mutex_unlock (self->priv->audio_bins_lock); - gst_object_unref (pad); } @@ -422,26 +308,6 @@ static void empathy_audio_sink_release_pad (GstElement *element, GstPad *pad) { - EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (element); - AudioBin *abin; - - g_mutex_lock (self->priv->audio_bins_lock); - abin = g_hash_table_lookup (self->priv->audio_bins, pad); - g_hash_table_steal (self->priv->audio_bins, pad); - g_mutex_unlock (self->priv->audio_bins_lock); - - if (abin == NULL) - { - g_warning ("Releasing a pad that doesn't belong to us ?"); - return; - } - gst_pad_set_active (pad, FALSE); gst_element_remove_pad (element, pad); - - gst_element_set_locked_state (abin->bin, TRUE); - gst_element_set_state (abin->bin, GST_STATE_NULL); - gst_bin_remove (GST_BIN (self), abin->bin); - - audio_bin_free (abin); } diff --git a/src/empathy-audio-src.c b/src/empathy-audio-src.c index 642628d7b..8f7a0599f 100644 --- a/src/empathy-audio-src.c +++ b/src/empathy-audio-src.c @@ -26,6 +26,7 @@ #include <pulse/glib-mainloop.h> #include <libempathy/empathy-utils.h> +#include <libempathy-gtk/empathy-call-utils.h> #include "empathy-audio-src.h" @@ -377,21 +378,51 @@ empathy_audio_src_source_output_index_notify (GObject *object, empathy_audio_src_source_output_info_cb, self); } +static GstElement * +create_src (void) +{ + GstElement *src; + const gchar *description; + + description = g_getenv ("EMPATHY_AUDIO_SRC"); + + if (description != NULL) + { + GError *error = NULL; + + src = gst_parse_bin_from_description (description, TRUE, &error); + if (src == NULL) + { + DEBUG ("Failed to create bin %s: %s", description, error->message); + g_error_free (error); + } + + return src; + } + + /* Use pulsesrc as default */ + src = gst_element_factory_make ("pulsesrc", NULL); + if (src == NULL) + return NULL; + + empathy_call_set_stream_properties (src); + + return src; +} + static void empathy_audio_src_init (EmpathyGstAudioSrc *obj) { EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (obj); GstPad *ghost, *src; - const gchar *src_element; priv->peak_level = -G_MAXDOUBLE; priv->lock = g_mutex_new (); - src_element = g_getenv ("EMPATHY_AUDIO_SRC"); - if (src_element == NULL) - src_element = "pulsesrc"; + priv->src = create_src (); + if (priv->src == NULL) + return; - priv->src = gst_element_factory_make (src_element, NULL); gst_bin_add (GST_BIN (obj), priv->src); priv->volume = gst_element_factory_make ("volume", NULL); diff --git a/src/empathy-av.c b/src/empathy-av.c index 6f8c5ba61..70acfc4f3 100644 --- a/src/empathy-av.c +++ b/src/empathy-av.c @@ -132,7 +132,6 @@ main (int argc, empathy_gtk_init (); g_set_application_name (_("Empathy Audio/Video Client")); - g_setenv ("PULSE_PROP_media.role", "phone", TRUE); /* Make empathy and empathy-av appear as the same app in gnome-shell */ gdk_set_program_class ("Empathy"); diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index 3ce138f17..8517d9d19 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -64,6 +64,8 @@ #include "empathy-video-src.h" #include "empathy-mic-menu.h" #include "empathy-preferences.h" +#include "empathy-rounded-actor.h" +#include "empathy-camera-menu.h" #define CONTENT_HBOX_BORDER_WIDTH 6 #define CONTENT_HBOX_SPACING 3 @@ -71,6 +73,12 @@ #define SELF_VIDEO_SECTION_WIDTH 120 #define SELF_VIDEO_SECTION_HEIGTH 90 +#define SELF_VIDEO_SECTION_MARGIN 10 + +#define FLOATING_TOOLBAR_OPACITY 192 +#define FLOATING_TOOLBAR_WIDTH 280 +#define FLOATING_TOOLBAR_HEIGHT 36 +#define FLOATING_TOOLBAR_SPACING 20 /* The avatar's default width and height are set to the same value because we want a square icon. */ @@ -105,6 +113,14 @@ typedef enum { CAMERA_STATE_ON, } CameraState; +typedef enum { + PREVIEW_POS_NONE, + PREVIEW_POS_TOP_LEFT, + PREVIEW_POS_TOP_RIGHT, + PREVIEW_POS_BOTTOM_LEFT, + PREVIEW_POS_BOTTOM_RIGHT, +} PreviewPosition; + struct _EmpathyCallWindowPriv { gboolean dispose_has_run; @@ -124,6 +140,10 @@ struct _EmpathyCallWindowPriv ClutterActor *video_output; ClutterActor *video_preview; ClutterActor *preview_hidden_button; + ClutterActor *preview_rectangle1; + ClutterActor *preview_rectangle2; + ClutterActor *preview_rectangle3; + ClutterActor *preview_rectangle4; GtkWidget *video_container; GtkWidget *remote_user_avatar_widget; GtkWidget *remote_user_avatar_toolbar; @@ -137,14 +157,23 @@ struct _EmpathyCallWindowPriv GtkWidget *dialpad_button; GtkWidget *toolbar; GtkWidget *bottom_toolbar; + ClutterActor *floating_toolbar; GtkWidget *pane; GtkAction *menu_fullscreen; + GtkAction *menu_swap_camera; + + ClutterState *transitions; /* The box that contains self and remote avatar and video input/output. When we redial, we destroy and re-create the box */ ClutterActor *video_box; ClutterLayoutManager *video_layout; + /* Coordinates of the preview drag event's start. */ + PreviewPosition preview_pos; + gfloat event_x; + gfloat event_y; + /* We keep a reference on the hbox which contains the main content so we can easilly repack everything when toggling fullscreen */ GtkWidget *content_hbox; @@ -198,6 +227,8 @@ struct _EmpathyCallWindowPriv gboolean got_video; guint got_video_src; + guint inactivity_src; + /* Those fields represent the state of the window before it actually was in fullscreen mode. */ gboolean dialpad_was_visible_before_fs; @@ -216,6 +247,7 @@ struct _EmpathyCallWindowPriv GSettings *settings; EmpathyMicMenu *mic_menu; + EmpathyCameraMenu *camera_menu; }; #define GET_PRIV(o) (EMPATHY_CALL_WINDOW (o)->priv) @@ -369,6 +401,8 @@ empathy_call_window_show_video_output (EmpathyCallWindow *self, g_object_set (self->priv->video_output, "visible", show, NULL); gtk_widget_set_visible (self->priv->remote_user_avatar_widget, !show); + + clutter_actor_raise_top (self->priv->floating_toolbar); } static void @@ -483,6 +517,67 @@ empathy_call_window_maximise_camera_cb (GtkAction *action, } static void +empathy_call_window_swap_camera_cb (GtkAction *action, + EmpathyCallWindow *self) +{ + const GList *cameras, *l; + gchar *current_cam; + + DEBUG ("Swapping the camera"); + + cameras = empathy_camera_monitor_get_cameras (self->priv->camera_monitor); + current_cam = empathy_video_src_dup_device ( + EMPATHY_GST_VIDEO_SRC (self->priv->video_input)); + + for (l = cameras; l != NULL; l = l->next) + { + EmpathyCamera *camera = l->data; + + if (!tp_strdiff (camera->device, current_cam)) + { + EmpathyCamera *next; + + if (l->next != NULL) + next = l->next->data; + else + next = cameras->data; + + /* EmpathyCameraMenu will update itself and do the actual change + * for us */ + g_settings_set_string (self->priv->settings, + EMPATHY_PREFS_CALL_CAMERA_DEVICE, + next->device); + + break; + } + } + + g_free (current_cam); +} + +static void +empathy_call_window_camera_added_cb (EmpathyCameraMonitor *monitor, + EmpathyCamera *camera, + EmpathyCallWindow *self) +{ + const GList *cameras = empathy_camera_monitor_get_cameras (monitor); + + gtk_action_set_visible (self->priv->menu_swap_camera, + g_list_length ((GList *) cameras) >= 2); +} + +static void +empathy_call_window_camera_removed_cb (EmpathyCameraMonitor *monitor, + EmpathyCamera *camera, + EmpathyCallWindow *self) +{ + const GList *cameras = empathy_camera_monitor_get_cameras (monitor); + + gtk_action_set_visible (self->priv->menu_swap_camera, + g_list_length ((GList *) cameras) >= 2); +} + +static void empathy_call_window_preview_button_clicked_cb (GtkButton *button, EmpathyCallWindow *self) { @@ -508,14 +603,339 @@ empathy_call_window_preview_hidden_button_clicked_cb (GtkButton *button, gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE); } +static ClutterActor * +empathy_call_window_create_preview_rectangle (EmpathyCallWindow *self, + ClutterBinAlignment x, + ClutterBinAlignment y) +{ + ClutterLayoutManager *layout1, *layout2; + ClutterActor *rectangle; + ClutterActor *box1, *box2; + + layout1 = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER, + CLUTTER_BIN_ALIGNMENT_START); + + box1 = clutter_box_new (layout1); + + rectangle = clutter_rectangle_new_with_color ( + CLUTTER_COLOR_Transparent); + + clutter_rectangle_set_border_width (CLUTTER_RECTANGLE (rectangle), + 1); + + clutter_actor_set_size (box1, + SELF_VIDEO_SECTION_WIDTH + 2 * SELF_VIDEO_SECTION_MARGIN, + SELF_VIDEO_SECTION_HEIGTH + 2 * SELF_VIDEO_SECTION_MARGIN + + FLOATING_TOOLBAR_HEIGHT + FLOATING_TOOLBAR_SPACING); + + layout2 = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER, + CLUTTER_BIN_ALIGNMENT_CENTER); + + /* We have a box with the margins and the video in the middle inside + * a bigger box with an extra bottom margin so we're not on top of + * the floating toolbar. */ + box2 = clutter_box_new (layout2); + + clutter_actor_set_size (box2, + SELF_VIDEO_SECTION_WIDTH + 2 * SELF_VIDEO_SECTION_MARGIN, + SELF_VIDEO_SECTION_HEIGTH + 2 * SELF_VIDEO_SECTION_MARGIN); + + clutter_actor_set_size (rectangle, + SELF_VIDEO_SECTION_WIDTH + 5, SELF_VIDEO_SECTION_HEIGTH + 5); + + clutter_container_add_actor (CLUTTER_CONTAINER (box1), box2); + clutter_container_add_actor (CLUTTER_CONTAINER (box2), rectangle); + + clutter_bin_layout_add (CLUTTER_BIN_LAYOUT (self->priv->video_layout), + box1, x, y); + + clutter_actor_hide (rectangle); + + return rectangle; +} + +static void +empathy_call_window_create_preview_rectangles (EmpathyCallWindow *self) +{ + self->priv->preview_rectangle1 = + empathy_call_window_create_preview_rectangle (self, + CLUTTER_BIN_ALIGNMENT_START, CLUTTER_BIN_ALIGNMENT_START); + self->priv->preview_rectangle2 = + empathy_call_window_create_preview_rectangle (self, + CLUTTER_BIN_ALIGNMENT_START, CLUTTER_BIN_ALIGNMENT_END); + self->priv->preview_rectangle3 = + empathy_call_window_create_preview_rectangle (self, + CLUTTER_BIN_ALIGNMENT_END, CLUTTER_BIN_ALIGNMENT_START); + self->priv->preview_rectangle4 = + empathy_call_window_create_preview_rectangle (self, + CLUTTER_BIN_ALIGNMENT_END, CLUTTER_BIN_ALIGNMENT_END); +} + +static void +empathy_call_window_show_preview_rectangles (EmpathyCallWindow *self, + gboolean show) +{ + g_object_set (self->priv->preview_rectangle1, "visible", show, NULL); + g_object_set (self->priv->preview_rectangle2, "visible", show, NULL); + g_object_set (self->priv->preview_rectangle3, "visible", show, NULL); + g_object_set (self->priv->preview_rectangle4, "visible", show, NULL); +} + +static PreviewPosition +empathy_call_window_get_preview_position (EmpathyCallWindow *self, + gfloat event_x, + gfloat event_y) +{ + ClutterGeometry box; + PreviewPosition pos = PREVIEW_POS_NONE; + + clutter_actor_get_geometry (self->priv->video_box, &box); + + if (0 + SELF_VIDEO_SECTION_MARGIN <= event_x && + event_x <= (0 + SELF_VIDEO_SECTION_MARGIN + (gint) SELF_VIDEO_SECTION_WIDTH) && + 0 + SELF_VIDEO_SECTION_MARGIN <= event_y && + event_y <= (0 + SELF_VIDEO_SECTION_MARGIN + (gint) SELF_VIDEO_SECTION_HEIGTH)) + { + pos = PREVIEW_POS_TOP_LEFT; + } + else if (box.width - SELF_VIDEO_SECTION_MARGIN >= event_x && + event_x >= (box.width - SELF_VIDEO_SECTION_MARGIN - (gint) SELF_VIDEO_SECTION_WIDTH) && + 0 + SELF_VIDEO_SECTION_MARGIN <= event_y && + event_y <= (0 + SELF_VIDEO_SECTION_MARGIN + (gint) SELF_VIDEO_SECTION_HEIGTH)) + { + pos = PREVIEW_POS_TOP_RIGHT; + } + else if (0 + SELF_VIDEO_SECTION_MARGIN <= event_x && + event_x <= (0 + SELF_VIDEO_SECTION_MARGIN + (gint) SELF_VIDEO_SECTION_WIDTH) && + box.height - SELF_VIDEO_SECTION_MARGIN - FLOATING_TOOLBAR_HEIGHT - FLOATING_TOOLBAR_SPACING >= event_y && + event_y >= (box.height - SELF_VIDEO_SECTION_MARGIN - FLOATING_TOOLBAR_HEIGHT - FLOATING_TOOLBAR_SPACING - (gint) SELF_VIDEO_SECTION_HEIGTH)) + { + pos = PREVIEW_POS_BOTTOM_LEFT; + } + else if (box.width - SELF_VIDEO_SECTION_MARGIN >= event_x && + event_x >= (box.width - SELF_VIDEO_SECTION_MARGIN - (gint) SELF_VIDEO_SECTION_WIDTH) && + box.height - SELF_VIDEO_SECTION_MARGIN - SELF_VIDEO_SECTION_MARGIN - FLOATING_TOOLBAR_HEIGHT - FLOATING_TOOLBAR_SPACING >= event_y && + event_y >= (box.height - SELF_VIDEO_SECTION_MARGIN - FLOATING_TOOLBAR_HEIGHT - FLOATING_TOOLBAR_SPACING - (gint) SELF_VIDEO_SECTION_HEIGTH)) + { + pos = PREVIEW_POS_BOTTOM_RIGHT; + } + + return pos; +} + +static ClutterActor * +empathy_call_window_get_preview_rectangle (EmpathyCallWindow *self, + PreviewPosition pos) +{ + ClutterActor *rectangle; + + switch (pos) + { + case PREVIEW_POS_TOP_LEFT: + rectangle = self->priv->preview_rectangle1; + break; + case PREVIEW_POS_TOP_RIGHT: + rectangle = self->priv->preview_rectangle3; + break; + case PREVIEW_POS_BOTTOM_LEFT: + rectangle = self->priv->preview_rectangle2; + break; + case PREVIEW_POS_BOTTOM_RIGHT: + rectangle = self->priv->preview_rectangle4; + break; + default: + rectangle = NULL; + } + + return rectangle; +} + +static void +empathy_call_window_move_video_preview (EmpathyCallWindow *self, + PreviewPosition pos) +{ + ClutterBinLayout *layout = CLUTTER_BIN_LAYOUT (self->priv->video_layout); + + DEBUG ("moving the video preview to %d", pos); + + self->priv->preview_pos = pos; + + switch (pos) + { + case PREVIEW_POS_TOP_LEFT: + clutter_bin_layout_set_alignment (layout, + self->priv->video_preview, + CLUTTER_BIN_ALIGNMENT_START, + CLUTTER_BIN_ALIGNMENT_START); + break; + case PREVIEW_POS_TOP_RIGHT: + clutter_bin_layout_set_alignment (layout, + self->priv->video_preview, + CLUTTER_BIN_ALIGNMENT_END, + CLUTTER_BIN_ALIGNMENT_START); + break; + case PREVIEW_POS_BOTTOM_LEFT: + clutter_bin_layout_set_alignment (layout, + self->priv->video_preview, + CLUTTER_BIN_ALIGNMENT_START, + CLUTTER_BIN_ALIGNMENT_END); + break; + case PREVIEW_POS_BOTTOM_RIGHT: + clutter_bin_layout_set_alignment (layout, + self->priv->video_preview, + CLUTTER_BIN_ALIGNMENT_END, + CLUTTER_BIN_ALIGNMENT_END); + break; + default: + g_warn_if_reached (); + } +} + +static void +empathy_call_window_highlight_preview_rectangle (EmpathyCallWindow *self, + PreviewPosition pos) +{ + ClutterActor *rectangle; + + rectangle = empathy_call_window_get_preview_rectangle (self, pos); + + clutter_rectangle_set_border_width (CLUTTER_RECTANGLE (rectangle), 3); + clutter_rectangle_set_border_color (CLUTTER_RECTANGLE (rectangle), + CLUTTER_COLOR_Red); +} + +static void +empathy_call_window_darken_preview_rectangle (EmpathyCallWindow *self, + ClutterActor *rectangle) +{ + clutter_rectangle_set_border_width (CLUTTER_RECTANGLE (rectangle), 1); + clutter_rectangle_set_border_color (CLUTTER_RECTANGLE (rectangle), + CLUTTER_COLOR_Black); +} + +static void +empathy_call_window_darken_preview_rectangles (EmpathyCallWindow *self) +{ + ClutterActor *rectangle; + + rectangle = empathy_call_window_get_preview_rectangle (self, + self->priv->preview_pos); + + /* We don't want to darken the rectangle where the preview + * currently is. */ + + if (self->priv->preview_rectangle1 != rectangle) + empathy_call_window_darken_preview_rectangle (self, + self->priv->preview_rectangle1); + + if (self->priv->preview_rectangle2 != rectangle) + empathy_call_window_darken_preview_rectangle (self, + self->priv->preview_rectangle2); + + if (self->priv->preview_rectangle3 != rectangle) + empathy_call_window_darken_preview_rectangle (self, + self->priv->preview_rectangle3); + + if (self->priv->preview_rectangle4 != rectangle) + empathy_call_window_darken_preview_rectangle (self, + self->priv->preview_rectangle4); +} + +static void +empathy_call_window_preview_on_drag_begin_cb (ClutterDragAction *action, + ClutterActor *actor, + gfloat event_x, + gfloat event_y, + ClutterModifierType modifiers, + EmpathyCallWindow *self) +{ + empathy_call_window_show_preview_rectangles (self, TRUE); + empathy_call_window_darken_preview_rectangles (self); + + self->priv->event_x = event_x; + self->priv->event_y = event_y; +} + +static void +empathy_call_window_preview_on_drag_end_cb (ClutterDragAction *action, + ClutterActor *actor, + gfloat event_x, + gfloat event_y, + ClutterModifierType modifiers, + EmpathyCallWindow *self) +{ + PreviewPosition pos; + + pos = empathy_call_window_get_preview_position (self, event_x, event_y); + + if (pos != PREVIEW_POS_NONE) + empathy_call_window_move_video_preview (self, pos); + + empathy_call_window_show_preview_rectangles (self, FALSE); +} + +static void +empathy_call_window_preview_on_drag_motion_cb (ClutterDragAction *action, + ClutterActor *actor, + gfloat delta_x, + gfloat delta_y, + EmpathyCallWindow *self) +{ + PreviewPosition pos; + + pos = empathy_call_window_get_preview_position (self, + self->priv->event_x - delta_x, self->priv->event_y + delta_y); + + if (pos != PREVIEW_POS_NONE) + empathy_call_window_highlight_preview_rectangle (self, pos); + else + empathy_call_window_darken_preview_rectangles (self); +} + +static gboolean +empathy_call_window_preview_enter_event_cb (ClutterActor *actor, + ClutterCrossingEvent *event, + EmpathyCallWindow *self) +{ + ClutterActor *rectangle; + + rectangle = empathy_call_window_get_preview_rectangle (self, + self->priv->preview_pos); + + empathy_call_window_highlight_preview_rectangle (self, + self->priv->preview_pos); + + clutter_actor_show (rectangle); + + return FALSE; +} + +static gboolean +empathy_call_window_preview_leave_event_cb (ClutterActor *actor, + ClutterCrossingEvent *event, + EmpathyCallWindow *self) +{ + ClutterActor *rectangle; + + rectangle = empathy_call_window_get_preview_rectangle (self, + self->priv->preview_pos); + + empathy_call_window_darken_preview_rectangle (self, rectangle); + + clutter_actor_hide (rectangle); + + return FALSE; +} + static void create_video_preview (EmpathyCallWindow *self) { EmpathyCallWindowPriv *priv = GET_PRIV (self); - ClutterLayoutManager *layout, *layout_center; + ClutterLayoutManager *layout, *layout_center, *layout_end; ClutterActor *preview; ClutterActor *box; ClutterActor *b; + ClutterAction *action; GtkWidget *button; g_assert (priv->video_preview == NULL); @@ -535,17 +955,23 @@ create_video_preview (EmpathyCallWindow *self) 0.0); /* Add a little offset to the video preview */ - layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_END, + layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER, CLUTTER_BIN_ALIGNMENT_START); priv->video_preview = clutter_box_new (layout); clutter_actor_set_size (priv->video_preview, - SELF_VIDEO_SECTION_WIDTH + 10, SELF_VIDEO_SECTION_HEIGTH + 10); + SELF_VIDEO_SECTION_WIDTH + 2 * SELF_VIDEO_SECTION_MARGIN, + SELF_VIDEO_SECTION_HEIGTH + 2 * SELF_VIDEO_SECTION_MARGIN + + FLOATING_TOOLBAR_HEIGHT + FLOATING_TOOLBAR_SPACING); + /* We have a box with the margins and the video in the middle inside + * a bigger box with an extra bottom margin so we're not on top of + * the floating toolbar. */ layout_center = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER, CLUTTER_BIN_ALIGNMENT_CENTER); box = clutter_box_new (layout_center); clutter_actor_set_size (box, - SELF_VIDEO_SECTION_WIDTH, SELF_VIDEO_SECTION_HEIGTH); + SELF_VIDEO_SECTION_WIDTH + 2 * SELF_VIDEO_SECTION_MARGIN, + SELF_VIDEO_SECTION_HEIGTH + 2 * SELF_VIDEO_SECTION_MARGIN); clutter_container_add_actor (CLUTTER_CONTAINER (box), preview); clutter_container_add_actor (CLUTTER_CONTAINER (priv->video_preview), box); @@ -560,10 +986,15 @@ create_video_preview (EmpathyCallWindow *self) button = gtk_button_new_with_label (_("i")); b = gtk_clutter_actor_new_with_contents (button); - clutter_bin_layout_add (CLUTTER_BIN_LAYOUT (layout_center), - b, - CLUTTER_BIN_ALIGNMENT_END, + layout_end = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_END, CLUTTER_BIN_ALIGNMENT_END); + box = clutter_box_new (layout_end); + clutter_actor_set_size (box, + SELF_VIDEO_SECTION_WIDTH, + SELF_VIDEO_SECTION_HEIGTH + SELF_VIDEO_SECTION_MARGIN); + + clutter_container_add_actor (CLUTTER_CONTAINER (box), b); + clutter_container_add_actor (CLUTTER_CONTAINER (priv->video_preview), box); g_signal_connect (button, "clicked", G_CALLBACK (empathy_call_window_preview_button_clicked_cb), @@ -580,6 +1011,8 @@ create_video_preview (EmpathyCallWindow *self) CLUTTER_BIN_ALIGNMENT_START, CLUTTER_BIN_ALIGNMENT_END); + self->priv->preview_pos = PREVIEW_POS_BOTTOM_LEFT; + clutter_actor_hide (priv->preview_hidden_button); g_signal_connect (button, "clicked", @@ -590,6 +1023,22 @@ create_video_preview (EmpathyCallWindow *self) priv->video_preview, CLUTTER_BIN_ALIGNMENT_START, CLUTTER_BIN_ALIGNMENT_END); + + action = clutter_drag_action_new (); + g_signal_connect (action, "drag-begin", + G_CALLBACK (empathy_call_window_preview_on_drag_begin_cb), self); + g_signal_connect (action, "drag-end", + G_CALLBACK (empathy_call_window_preview_on_drag_end_cb), self); + g_signal_connect (action, "drag-motion", + G_CALLBACK (empathy_call_window_preview_on_drag_motion_cb), self); + + g_signal_connect (preview, "enter-event", + G_CALLBACK (empathy_call_window_preview_enter_event_cb), self); + g_signal_connect (preview, "leave-event", + G_CALLBACK (empathy_call_window_preview_leave_event_cb), self); + + clutter_actor_add_action (preview, action); + clutter_actor_set_reactive (preview, TRUE); } static void @@ -631,6 +1080,7 @@ display_video_preview (EmpathyCallWindow *self, play_camera (self, TRUE); clutter_actor_show (priv->video_preview); + clutter_actor_raise_top (priv->floating_toolbar); } else { @@ -765,6 +1215,32 @@ empathy_call_window_about_cb (GtkAction *action, } static gboolean +empathy_call_window_toolbar_timeout (gpointer data) +{ + EmpathyCallWindow *self = data; + + clutter_state_set_state (self->priv->transitions, "fade-out"); + + return TRUE; +} + +static gboolean +empathy_call_window_motion_notify_cb (GtkWidget *widget, + GdkEvent *event, + EmpathyCallWindow *self) +{ + clutter_state_set_state (self->priv->transitions, "fade-in"); + + if (self->priv->inactivity_src > 0) + g_source_remove (self->priv->inactivity_src); + + self->priv->inactivity_src = g_timeout_add_seconds (3, + empathy_call_window_toolbar_timeout, self); + + return FALSE; +} + +static gboolean empathy_call_window_configure_event_cb (GtkWidget *widget, GdkEvent *event, EmpathyCallWindow *self) @@ -800,13 +1276,27 @@ empathy_call_window_destroyed_cb (GtkWidget *object, } static void +empathy_call_window_stage_allocation_changed_cb (ClutterActor *stage, + GParamSpec *pspec, + ClutterBindConstraint *constraint) +{ + ClutterActorBox allocation; + + clutter_actor_get_allocation_box (stage, &allocation); + + clutter_bind_constraint_set_offset (constraint, + allocation.y2 - allocation.y1 - + FLOATING_TOOLBAR_SPACING - FLOATING_TOOLBAR_HEIGHT); +} + +static void empathy_call_window_init (EmpathyCallWindow *self) { EmpathyCallWindowPriv *priv; GtkBuilder *gui; GtkWidget *top_vbox; gchar *filename; - ClutterConstraint *size_constraint; + ClutterConstraint *constraint; ClutterActor *remote_avatar; GtkStyleContext *context; GdkRGBA rgba; @@ -833,6 +1323,7 @@ empathy_call_window_init (EmpathyCallWindow *self) "bottom_toolbar", &priv->bottom_toolbar, "ui_manager", &priv->ui_manager, "menufullscreen", &priv->menu_fullscreen, + "menupreviewswap", &priv->menu_swap_camera, "details_vbox", &priv->details_vbox, "vcodec_encoding_label", &priv->vcodec_encoding_label, "acodec_encoding_label", &priv->acodec_encoding_label, @@ -865,6 +1356,7 @@ empathy_call_window_init (EmpathyCallWindow *self) "menupreviewdisable", "activate", empathy_call_window_disable_camera_cb, "menupreviewminimise", "activate", empathy_call_window_minimise_camera_cb, "menupreviewmaximise", "activate", empathy_call_window_maximise_camera_cb, + "menupreviewswap", "activate", empathy_call_window_swap_camera_cb, NULL); gtk_action_set_sensitive (priv->menu_fullscreen, FALSE); @@ -875,6 +1367,11 @@ empathy_call_window_init (EmpathyCallWindow *self) priv->camera_button, "sensitive", G_BINDING_SYNC_CREATE); + g_signal_connect (priv->camera_monitor, "added", + G_CALLBACK (empathy_call_window_camera_added_cb), self); + g_signal_connect (priv->camera_monitor, "removed", + G_CALLBACK (empathy_call_window_camera_removed_cb), self); + priv->lock = g_mutex_new (); gtk_container_add (GTK_CONTAINER (self), top_vbox); @@ -912,10 +1409,10 @@ empathy_call_window_init (EmpathyCallWindow *self) priv->video_box, NULL); - size_constraint = clutter_bind_constraint_new ( + constraint = clutter_bind_constraint_new ( gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (priv->video_container)), CLUTTER_BIND_SIZE, 0); - clutter_actor_add_constraint (priv->video_box, size_constraint); + clutter_actor_add_constraint (priv->video_box, constraint); priv->remote_user_avatar_widget = gtk_image_new (); remote_avatar = gtk_clutter_actor_new_with_contents ( @@ -924,6 +1421,8 @@ empathy_call_window_init (EmpathyCallWindow *self) clutter_container_add_actor (CLUTTER_CONTAINER (priv->video_box), remote_avatar); + empathy_call_window_create_preview_rectangles (self); + gtk_box_pack_start (GTK_BOX (priv->content_hbox), priv->video_container, TRUE, TRUE, CONTENT_HBOX_CHILDREN_PACKING_PADDING); @@ -933,6 +1432,55 @@ empathy_call_window_init (EmpathyCallWindow *self) create_audio_input (self); create_video_input (self); + priv->floating_toolbar = empathy_rounded_actor_new (); + + gtk_widget_reparent (priv->bottom_toolbar, + gtk_clutter_actor_get_widget (GTK_CLUTTER_ACTOR (priv->floating_toolbar))); + + constraint = clutter_bind_constraint_new ( + gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (priv->video_container)), + CLUTTER_BIND_Y, 0); + + clutter_actor_add_constraint (priv->floating_toolbar, constraint); + + g_signal_connect ( + gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (priv->video_container)), + "notify::allocation", + G_CALLBACK (empathy_call_window_stage_allocation_changed_cb), + constraint); + + clutter_actor_set_size (priv->floating_toolbar, + FLOATING_TOOLBAR_WIDTH, FLOATING_TOOLBAR_HEIGHT); + clutter_actor_set_opacity (priv->floating_toolbar, FLOATING_TOOLBAR_OPACITY); + + clutter_bin_layout_add (CLUTTER_BIN_LAYOUT (priv->video_layout), + priv->floating_toolbar, + CLUTTER_BIN_ALIGNMENT_CENTER, + CLUTTER_BIN_ALIGNMENT_END); + + clutter_actor_raise_top (priv->floating_toolbar); + + /* Transitions for the floating toolbar */ + priv->transitions = clutter_state_new (); + + /* all transitions last for 2s */ + clutter_state_set_duration (priv->transitions, NULL, NULL, 2000); + + /* transition from any state to "fade-out" state */ + clutter_state_set (priv->transitions, NULL, "fade-out", + priv->floating_toolbar, + "opacity", CLUTTER_EASE_OUT_QUAD, 0, + NULL); + + /* transition from any state to "fade-in" state */ + clutter_state_set (priv->transitions, NULL, "fade-in", + priv->floating_toolbar, + "opacity", CLUTTER_EASE_OUT_QUAD, FLOATING_TOOLBAR_OPACITY, + NULL); + + /* put the actor into the "fade-in" state with no animation */ + clutter_state_warp_to_state (priv->transitions, "fade-in"); + /* The call will be started as soon the pipeline is playing */ priv->start_call_when_playing = TRUE; @@ -958,6 +1506,11 @@ empathy_call_window_init (EmpathyCallWindow *self) empathy_call_window_fullscreen_set_video_widget (priv->fullscreen, priv->video_container); + /* We hide the bottom toolbar after 3s of inactivity and show it + * again on mouse movement */ + priv->inactivity_src = g_timeout_add_seconds (3, + empathy_call_window_toolbar_timeout, self); + g_signal_connect (G_OBJECT (priv->fullscreen->leave_fullscreen_button), "clicked", G_CALLBACK (empathy_call_window_fullscreen_cb), self); @@ -973,6 +1526,9 @@ empathy_call_window_init (EmpathyCallWindow *self) g_signal_connect (G_OBJECT (self), "key-press-event", G_CALLBACK (empathy_call_window_key_press_cb), self); + g_signal_connect (self, "motion-notify-event", + G_CALLBACK (empathy_call_window_motion_notify_cb), self); + priv->timer = g_timer_new (); g_object_ref (priv->ui_manager); @@ -980,10 +1536,16 @@ empathy_call_window_init (EmpathyCallWindow *self) priv->sound_mgr = empathy_sound_manager_dup_singleton (); priv->mic_menu = empathy_mic_menu_new (self); + priv->camera_menu = empathy_camera_menu_new (self); empathy_call_window_show_hangup_button (self, TRUE); priv->settings = g_settings_new (EMPATHY_PREFS_CALL_SCHEMA); + + /* Retrieve initial volume */ + priv->volume = g_settings_get_double (priv->settings, + EMPATHY_PREFS_CALL_SOUND_VOLUME) / 100.0; + g_signal_connect (priv->settings, "changed::"EMPATHY_PREFS_CALL_SOUND_VOLUME, G_CALLBACK (empathy_call_window_prefs_volume_changed_cb), self); @@ -1000,7 +1562,6 @@ empathy_call_window_init (EmpathyCallWindow *self) /* Don't display labels in both toolbars */ gtk_toolbar_set_style (GTK_TOOLBAR (priv->toolbar), GTK_TOOLBAR_ICONS); - gtk_toolbar_set_style (GTK_TOOLBAR (priv->bottom_toolbar), GTK_TOOLBAR_ICONS); } /* Instead of specifying a width and a height, we specify only one size. That's @@ -1047,7 +1608,7 @@ set_window_title (EmpathyCallWindow *self) } else { - gtk_window_set_title (GTK_WINDOW (self), _("Call with %d participants")); + g_warning ("Unknown remote contact!"); } } @@ -1493,6 +2054,12 @@ empathy_call_window_dispose (GObject *object) priv->got_video_src = 0; } + if (priv->inactivity_src > 0) + { + g_source_remove (priv->inactivity_src); + priv->inactivity_src = 0; + } + tp_clear_object (&priv->pipeline); tp_clear_object (&priv->video_input); tp_clear_object (&priv->audio_input); @@ -1501,6 +2068,9 @@ empathy_call_window_dispose (GObject *object) tp_clear_object (&priv->fullscreen); tp_clear_object (&priv->camera_monitor); tp_clear_object (&priv->settings); + tp_clear_object (&priv->sound_mgr); + tp_clear_object (&priv->mic_menu); + tp_clear_object (&priv->camera_menu); g_list_free_full (priv->notifiers, g_object_unref); @@ -1515,11 +2085,6 @@ empathy_call_window_dispose (GObject *object) priv->contact = NULL; } - - tp_clear_object (&priv->sound_mgr); - - tp_clear_object (&priv->mic_menu); - G_OBJECT_CLASS (empathy_call_window_parent_class)->dispose (object); } @@ -2224,6 +2789,7 @@ empathy_call_window_show_video_output_cb (gpointer user_data) { gtk_widget_hide (self->priv->remote_user_avatar_widget); clutter_actor_show (self->priv->video_output); + clutter_actor_raise_top (self->priv->floating_toolbar); } return FALSE; @@ -2848,13 +3414,18 @@ empathy_call_window_set_send_video (EmpathyCallWindow *window, static void empathy_call_window_mic_toggled_cb (GtkToggleToolButton *toggle, - EmpathyCallWindow *window) + EmpathyCallWindow *self) { - EmpathyCallWindowPriv *priv = GET_PRIV (window); + EmpathyCallWindowPriv *priv = GET_PRIV (self); gboolean active; active = (gtk_toggle_tool_button_get_active (toggle)); + /* We don't want the settings callback to react to this change to avoid + * a loop. */ + g_signal_handlers_block_by_func (priv->settings, + empathy_call_window_prefs_volume_changed_cb, self); + if (active) { g_settings_set_double (priv->settings, EMPATHY_PREFS_CALL_SOUND_VOLUME, @@ -2870,6 +3441,9 @@ empathy_call_window_mic_toggled_cb (GtkToggleToolButton *toggle, g_settings_set_double (priv->settings, EMPATHY_PREFS_CALL_SOUND_VOLUME, 0); } + + g_signal_handlers_unblock_by_func (priv->settings, + empathy_call_window_prefs_volume_changed_cb, self); } static void @@ -2979,6 +3553,9 @@ empathy_call_window_video_output_motion_notify (GtkWidget *widget, if (priv->is_fullscreen) { empathy_call_window_fullscreen_show_popup (priv->fullscreen); + + /* Show the bottom toolbar */ + empathy_call_window_motion_notify_cb (NULL, NULL, window); return TRUE; } return FALSE; @@ -3033,3 +3610,9 @@ empathy_call_window_get_audio_src (EmpathyCallWindow *window) return (EmpathyGstAudioSrc *) priv->audio_input; } + +EmpathyGstVideoSrc * +empathy_call_window_get_video_src (EmpathyCallWindow *self) +{ + return EMPATHY_GST_VIDEO_SRC (self->priv->video_input); +} diff --git a/src/empathy-call-window.h b/src/empathy-call-window.h index 357d6f160..912a79173 100644 --- a/src/empathy-call-window.h +++ b/src/empathy-call-window.h @@ -26,6 +26,7 @@ #include "empathy-call-handler.h" #include "empathy-audio-src.h" +#include "empathy-video-src.h" G_BEGIN_DECLS @@ -66,6 +67,7 @@ EmpathyCallWindow *empathy_call_window_new (EmpathyCallHandler *handler); GtkUIManager *empathy_call_window_get_ui_manager (EmpathyCallWindow *window); EmpathyGstAudioSrc *empathy_call_window_get_audio_src (EmpathyCallWindow *window); +EmpathyGstVideoSrc *empathy_call_window_get_video_src (EmpathyCallWindow *window); G_END_DECLS diff --git a/src/empathy-call-window.ui b/src/empathy-call-window.ui index b376323e0..0dea20869 100644 --- a/src/empathy-call-window.ui +++ b/src/empathy-call-window.ui @@ -31,6 +31,13 @@ </object> </child> <child> + <object class="GtkAction" id="menucamera"> + <property name="label" translatable="yes">_Camera</property> + <property name="name">menucamera</property> + <property name="icon_name">camera-web</property> + </object> + </child> + <child> <object class="GtkAction" id="menusettings"> <property name="stock_id">gtk-preferences</property> <property name="name">menusettings</property> @@ -38,6 +45,12 @@ </object> </child> <child> + <object class="GtkAction" id="view"> + <property name="name">view</property> + <property name="label" translatable="yes">_View</property> + </object> + </child> + <child> <object class="GtkAction" id="help"> <property name="name">help</property> <property name="label" translatable="yes">_Help</property> @@ -64,6 +77,12 @@ </object> </child> <child> + <object class="GtkAction" id="menupreviewswap"> + <property name="name">menupreviewswap</property> + <property name="label" translatable="yes">Swap camera</property> + </object> + </child> + <child> <object class="GtkAction" id="menupreviewminimise"> <property name="name">menupreviewminimise</property> <property name="label" translatable="yes">Minimise me</property> @@ -90,6 +109,7 @@ </menu> <menu action="edit"> <menu action="menumicrophone"/> + <menu action="menucamera"/> <menuitem name="menusettings" action="menusettings"/> </menu> <menu action="help"> @@ -102,10 +122,12 @@ <menuitem name="menufullscreen" action="menufullscreen"/> </popup> <popup name="preview-menu"> + <menuitem name="menupreviewswap" action="menupreviewswap"/> <menuitem name="menupreviewminimise" action="menupreviewminimise"/> <menuitem name="menupreviewdisable" action="menupreviewdisable"/> </popup> <popup name="preview-hidden-menu"> + <menuitem name="menupreviewswap" action="menupreviewswap"/> <menuitem name="menupreviewmaximise" action="menupreviewmaximise"/> <menuitem name="menupreviewdisable" action="menupreviewdisable"/> </popup> @@ -231,11 +253,9 @@ </packing> </child> <child> - <object class="GtkToolbar" id="bottom_toolbar"> + <object class="GtkHBox" id="bottom_toolbar"> <property name="visible">True</property> - <style> - <class name="bottom-toolbar"/> - </style> + <property name="homogeneous">False</property> <child> <object class="GtkToggleToolButton" id="camera"> <property name="visible">True</property> @@ -245,7 +265,8 @@ <property name="tooltip_text" translatable="yes">Toggle video transmission</property> </object> <packing> - <property name="homogeneous">True</property> + <property name="expand">False</property> + <property name="fill">False</property> </packing> </child> <child> @@ -259,7 +280,8 @@ </child> </object> <packing> - <property name="homogeneous">True</property> + <property name="expand">False</property> + <property name="fill">False</property> </packing> </child> <child> @@ -271,7 +293,8 @@ <property name="tooltip_text" translatable="yes">Toggle audio transmission</property> </object> <packing> - <property name="homogeneous">True</property> + <property name="expand">False</property> + <property name="fill">False</property> </packing> </child> <child> @@ -291,6 +314,16 @@ </object> </child> </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkSeparatorToolItem" id="toolbutton2"> + <property name="draw">False</property> + <property name="visible">True</property> + </object> </child> </object> <packing> diff --git a/src/empathy-call.c b/src/empathy-call.c index 7503532c5..1f60217db 100644 --- a/src/empathy-call.c +++ b/src/empathy-call.c @@ -121,9 +121,16 @@ main (int argc, /* Init */ g_thread_init (NULL); + /* Clutter needs this */ + gdk_disable_multidevice (); + optcontext = g_option_context_new (N_("- Empathy Audio/Video Client")); g_option_context_add_group (optcontext, gst_init_get_option_group ()); g_option_context_add_group (optcontext, gtk_get_option_group (TRUE)); + g_option_context_add_group (optcontext, cogl_get_option_group ()); + g_option_context_add_group (optcontext, + clutter_get_option_group_without_init ()); + g_option_context_add_group (optcontext, gtk_clutter_get_option_group ()); g_option_context_add_main_entries (optcontext, options, GETTEXT_PACKAGE); if (!g_option_context_parse (optcontext, &argc, &argv, &error)) { @@ -143,7 +150,6 @@ main (int argc, empathy_gtk_init (); g_set_application_name (_("Empathy Audio/Video Client")); - g_setenv ("PULSE_PROP_media.role", "phone", TRUE); /* Make empathy and empathy-call appear as the same app in gnome-shell */ gdk_set_program_class ("Empathy"); diff --git a/src/empathy-camera-menu.c b/src/empathy-camera-menu.c new file mode 100644 index 000000000..6a7d20c15 --- /dev/null +++ b/src/empathy-camera-menu.c @@ -0,0 +1,387 @@ +/* + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * GtkAction code based on gnome-terminal's TerminalTabsMenu object. + * Thanks guys! + */ + +#include <config.h> + +#include <gtk/gtk.h> + +#include <libempathy/empathy-camera-monitor.h> +#include <libempathy/empathy-gsettings.h> + +#include "empathy-camera-menu.h" + +#define DEBUG_FLAG EMPATHY_DEBUG_VOIP +#include <libempathy/empathy-debug.h> + +struct _EmpathyCameraMenuPrivate +{ + /* Borrowed ref; the call window actually owns us. */ + EmpathyCallWindow *window; + + /* Given away ref; the call window's UI manager now owns this. */ + GtkActionGroup *action_group; + + /* An invisible radio action so new cameras are always in the + * same radio group. */ + GtkAction *anchor_action; + + /* The merge ID used with the UI manager. We need to keep this + * around so in _clean we can remove all the items we've added + * before and start again. */ + guint ui_id; + + /* TRUE if we're in _update and so calling _set_active. */ + gboolean in_update; + + /* Queue of GtkRadioActions. */ + GQueue *cameras; + + EmpathyCameraMonitor *camera_monitor; + + GSettings *settings; +}; + +G_DEFINE_TYPE (EmpathyCameraMenu, empathy_camera_menu, G_TYPE_OBJECT); + +enum +{ + PROP_WINDOW = 1, +}; + +static void empathy_camera_menu_update (EmpathyCameraMenu *self); + +static void +empathy_camera_menu_init (EmpathyCameraMenu *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + EMPATHY_TYPE_CAMERA_MENU, EmpathyCameraMenuPrivate); +} + +static void +empathy_camera_menu_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + EmpathyCameraMenu *self = EMPATHY_CAMERA_MENU (object); + + switch (property_id) + { + case PROP_WINDOW: + self->priv->window = g_value_get_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +empathy_camera_menu_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + EmpathyCameraMenu *self = EMPATHY_CAMERA_MENU (object); + + switch (property_id) + { + case PROP_WINDOW: + g_value_set_object (value, self->priv->window); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +empathy_camera_menu_clean (EmpathyCameraMenu *self) +{ + GtkUIManager *ui_manager; + + if (self->priv->ui_id == 0) + return; + + ui_manager = empathy_call_window_get_ui_manager (self->priv->window); + + gtk_ui_manager_remove_ui (ui_manager, self->priv->ui_id); + gtk_ui_manager_ensure_update (ui_manager); + self->priv->ui_id = 0; +} + +static void +empathy_camera_menu_activate_cb (GtkAction *action, + EmpathyCameraMenu *self) +{ + EmpathyGstVideoSrc *video; + const gchar *device; + + if (self->priv->in_update) + return; + + video = empathy_call_window_get_video_src (self->priv->window); + + device = gtk_action_get_name (action); + + empathy_video_src_change_device (video, device); +} + +static void +empathy_camera_menu_update (EmpathyCameraMenu *self) +{ + GList *l; + GtkUIManager *ui_manager; + EmpathyGstVideoSrc *video; + gchar *current_camera; + + ui_manager = empathy_call_window_get_ui_manager (self->priv->window); + + video = empathy_call_window_get_video_src (self->priv->window); + current_camera = empathy_video_src_dup_device (video); + + empathy_camera_menu_clean (self); + self->priv->ui_id = gtk_ui_manager_new_merge_id (ui_manager); + + for (l = self->priv->cameras->head; l != NULL; l = g_list_next (l)) + { + GtkRadioAction *action = l->data; + const gchar *name = gtk_action_get_name (GTK_ACTION (action)); + + if (!tp_strdiff (current_camera, name)) + { + self->priv->in_update = TRUE; + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); + self->priv->in_update = FALSE; + } + + gtk_ui_manager_add_ui (ui_manager, self->priv->ui_id, + /* TODO: this should probably be passed from the call + * window, seeing that it's a reference to + * empathy-call-window.ui. */ + "/menubar1/edit/menucamera", + name, name, GTK_UI_MANAGER_MENUITEM, FALSE); + } + + g_free (current_camera); +} + +static void +empathy_camera_menu_add_camera (EmpathyCameraMenu *self, + EmpathyCamera *camera) +{ + GtkRadioAction *action; + GSList *group; + + action = gtk_radio_action_new (camera->device, camera->name, NULL, NULL, 0); + gtk_action_group_add_action (self->priv->action_group, GTK_ACTION (action)); + + group = gtk_radio_action_get_group ( + GTK_RADIO_ACTION (self->priv->anchor_action)); + gtk_radio_action_set_group (GTK_RADIO_ACTION (action), group); + + g_queue_push_tail (self->priv->cameras, action); + + g_signal_connect (action, "activate", + G_CALLBACK (empathy_camera_menu_activate_cb), self); +} + +static void +empathy_camera_menu_camera_added_cb (EmpathyCameraMonitor *monitor, + EmpathyCamera *camera, + EmpathyCameraMenu *self) +{ + empathy_camera_menu_add_camera (self, camera); + empathy_camera_menu_update (self); +} + +static void +empathy_camera_menu_camera_removed_cb (EmpathyCameraMonitor *monitor, + EmpathyCamera *camera, + EmpathyCameraMenu *self) +{ + GList *l; + + for (l = self->priv->cameras->head; l != NULL; l = g_list_next (l)) + { + GtkAction *action = l->data; + const gchar *device; + + device = gtk_action_get_name (action); + + if (tp_strdiff (device, camera->device)) + continue; + + g_signal_handlers_disconnect_by_func (action, + G_CALLBACK (empathy_camera_menu_activate_cb), self); + + gtk_action_group_remove_action (self->priv->action_group, + action); + g_queue_remove (self->priv->cameras, action); + break; + } + + empathy_camera_menu_update (self); +} + +static void +empathy_camera_menu_prefs_camera_changed_cb (GSettings *settings, + gchar *key, + EmpathyCameraMenu *self) +{ + gchar *device = g_settings_get_string (settings, key); + GtkRadioAction *action = NULL; + gboolean found = FALSE; + GList *l; + + for (l = self->priv->cameras->head; l != NULL; l = g_list_next (l)) + { + const gchar *name; + + action = l->data; + name = gtk_action_get_name (GTK_ACTION (action)); + + if (!tp_strdiff (device, name)) + { + found = TRUE; + break; + } + } + + /* If the selected camera isn't found, we connect the first + * available one */ + if (!found && self->priv->cameras->head != NULL) + action = self->priv->cameras->head->data; + + if (action != NULL && + !gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) + { + g_signal_handlers_block_by_func (settings, + empathy_camera_menu_prefs_camera_changed_cb, self); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); + g_signal_handlers_unblock_by_func (settings, + empathy_camera_menu_prefs_camera_changed_cb, self); + } + + g_free (device); +} + +static void +empathy_camera_menu_get_cameras (EmpathyCameraMenu *self) +{ + const GList *cameras; + + cameras = empathy_camera_monitor_get_cameras (self->priv->camera_monitor); + + for (; cameras != NULL; cameras = g_list_next (cameras)) + { + EmpathyCamera *camera = cameras->data; + + empathy_camera_menu_add_camera (self, camera); + } + + empathy_camera_menu_update (self); + + /* Do as if the gsettings key had changed, so we select the key that + * was last set. */ + empathy_camera_menu_prefs_camera_changed_cb (self->priv->settings, + EMPATHY_PREFS_CALL_CAMERA_DEVICE, self); +} + +static void +empathy_camera_menu_constructed (GObject *obj) +{ + EmpathyCameraMenu *self = EMPATHY_CAMERA_MENU (obj); + GtkUIManager *ui_manager; + + g_assert (EMPATHY_IS_CALL_WINDOW (self->priv->window)); + + ui_manager = empathy_call_window_get_ui_manager (self->priv->window); + + g_assert (GTK_IS_UI_MANAGER (ui_manager)); + + /* Okay let's go go go. */ + + self->priv->action_group = gtk_action_group_new ("EmpathyCameraMenu"); + gtk_ui_manager_insert_action_group (ui_manager, self->priv->action_group, -1); + /* the UI manager now owns this */ + g_object_unref (self->priv->action_group); + + self->priv->anchor_action = g_object_new (GTK_TYPE_RADIO_ACTION, + "name", "EmpathyCameraMenuAnchorAction", + NULL); + gtk_action_group_add_action (self->priv->action_group, + self->priv->anchor_action); + g_object_unref (self->priv->anchor_action); + + self->priv->camera_monitor = empathy_camera_monitor_new (); + + tp_g_signal_connect_object (self->priv->camera_monitor, "added", + G_CALLBACK (empathy_camera_menu_camera_added_cb), self, 0); + tp_g_signal_connect_object (self->priv->camera_monitor, "removed", + G_CALLBACK (empathy_camera_menu_camera_removed_cb), self, 0); + + self->priv->settings = g_settings_new (EMPATHY_PREFS_CALL_SCHEMA); + g_signal_connect (self->priv->settings, + "changed::"EMPATHY_PREFS_CALL_CAMERA_DEVICE, + G_CALLBACK (empathy_camera_menu_prefs_camera_changed_cb), self); + + self->priv->cameras = g_queue_new (); + + empathy_camera_menu_get_cameras (self); +} + +static void +empathy_camera_menu_dispose (GObject *obj) +{ + EmpathyCameraMenu *self = EMPATHY_CAMERA_MENU (obj); + + tp_clear_pointer (&self->priv->cameras, g_queue_free); + + tp_clear_object (&self->priv->camera_monitor); + tp_clear_object (&self->priv->settings); + + G_OBJECT_CLASS (empathy_camera_menu_parent_class)->dispose (obj); +} + +static void +empathy_camera_menu_class_init (EmpathyCameraMenuClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = empathy_camera_menu_set_property; + object_class->get_property = empathy_camera_menu_get_property; + object_class->constructed = empathy_camera_menu_constructed; + object_class->dispose = empathy_camera_menu_dispose; + + g_object_class_install_property (object_class, PROP_WINDOW, + g_param_spec_object ("window", "window", "window", + EMPATHY_TYPE_CALL_WINDOW, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + + g_type_class_add_private (object_class, sizeof (EmpathyCameraMenuPrivate)); +} + +EmpathyCameraMenu * +empathy_camera_menu_new (EmpathyCallWindow *window) +{ + return g_object_new (EMPATHY_TYPE_CAMERA_MENU, + "window", window, + NULL); +} diff --git a/src/empathy-camera-menu.h b/src/empathy-camera-menu.h new file mode 100644 index 000000000..f105baf22 --- /dev/null +++ b/src/empathy-camera-menu.h @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __EMPATHY_CAMERA_MENU_H__ +#define __EMPATHY_CAMERA_MENU_H__ + +#include <glib-object.h> + +#include "empathy-call-window.h" + +G_BEGIN_DECLS + +#define EMPATHY_TYPE_CAMERA_MENU (empathy_camera_menu_get_type ()) +#define EMPATHY_CAMERA_MENU(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_CAMERA_MENU, EmpathyCameraMenu)) +#define EMPATHY_CAMERA_MENU_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EMPATHY_TYPE_CAMERA_MENU, EmpathyCameraMenuClass)) +#define EMPATHY_IS_CAMERA_MENU(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_CAMERA_MENU)) +#define EMPATHY_IS_CAMERA_MENU_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_CAMERA_MENU)) +#define EMPATHY_CAMERA_MENU_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_CAMERA_MENU, EmpathyCameraMenuClass)) + +typedef struct _EmpathyCameraMenu EmpathyCameraMenu; +typedef struct _EmpathyCameraMenuPrivate EmpathyCameraMenuPrivate; +typedef struct _EmpathyCameraMenuClass EmpathyCameraMenuClass; + +struct _EmpathyCameraMenu +{ + GObject parent; + EmpathyCameraMenuPrivate *priv; +}; + +struct _EmpathyCameraMenuClass +{ + GObjectClass parent_class; +}; + +GType empathy_camera_menu_get_type (void) G_GNUC_CONST; + +EmpathyCameraMenu * empathy_camera_menu_new (EmpathyCallWindow *window); + +G_END_DECLS + +#endif /* __EMPATHY_CAMERA_MENU_H__ */ diff --git a/src/empathy-preferences.c b/src/empathy-preferences.c index e593c6f76..5618caeaf 100644 --- a/src/empathy-preferences.c +++ b/src/empathy-preferences.c @@ -88,6 +88,7 @@ struct _EmpathyPreferencesPriv { GtkWidget *scale_call_volume; GtkWidget *adj_call_volume; + GtkWidget *echo_cancellation; GtkWidget *treeview_spell_checker; @@ -280,6 +281,12 @@ preferences_setup_widgets (EmpathyPreferences *preferences) "value", G_SETTINGS_BIND_DEFAULT); + g_settings_bind (priv->gsettings_call, + EMPATHY_PREFS_CALL_ECHO_CANCELLATION, + priv->echo_cancellation, + "active", + G_SETTINGS_BIND_DEFAULT); + g_settings_bind (priv->gsettings, EMPATHY_PREFS_AUTOCONNECT, priv->checkbutton_autoconnect, @@ -1197,6 +1204,7 @@ empathy_preferences_init (EmpathyPreferences *preferences) "checkbutton_location_resource_gps", &priv->checkbutton_location_resource_gps, "call_volume_scale", &priv->scale_call_volume, "call_volume_adjustment", &priv->adj_call_volume, + "call_echo_cancellation", &priv->echo_cancellation, NULL); g_free (filename); diff --git a/src/empathy-preferences.ui b/src/empathy-preferences.ui index f8dc0a0d3..ab06b21bf 100644 --- a/src/empathy-preferences.ui +++ b/src/empathy-preferences.ui @@ -561,6 +561,19 @@ <property name="position">1</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="call_echo_cancellation"> + <property name="label">_Echo Cancellation</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> </object> </child> </object> diff --git a/src/empathy-rounded-actor.c b/src/empathy-rounded-actor.c new file mode 100644 index 000000000..463a73c61 --- /dev/null +++ b/src/empathy-rounded-actor.c @@ -0,0 +1,68 @@ +/* + * empathy-rounded-actor.c - Source for EmpathyRoundedActor + * Copyright (C) 2011 Collabora Ltd. + * @author Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#include <clutter/clutter.h> +#include <clutter-gtk/clutter-gtk.h> + +#include "empathy-rounded-actor.h" + +G_DEFINE_TYPE(EmpathyRoundedActor, empathy_rounded_actor, GTK_CLUTTER_TYPE_ACTOR) + +static void +empathy_rounded_actor_paint (ClutterActor *actor) +{ + ClutterActorBox allocation = { 0, }; + gfloat width, height; + + clutter_actor_get_allocation_box (actor, &allocation); + clutter_actor_box_get_size (&allocation, &width, &height); + + cogl_path_new (); + + /* create and store a path describing a rounded rectangle */ + cogl_path_round_rectangle (0, 0, width, height, height / 2, 0.1); + + cogl_clip_push_from_path (); + + CLUTTER_ACTOR_CLASS (empathy_rounded_actor_parent_class)->paint (actor); + + cogl_clip_pop (); +} + +static void +empathy_rounded_actor_init (EmpathyRoundedActor *self) +{ +} + +static void +empathy_rounded_actor_class_init (EmpathyRoundedActorClass *klass) +{ + ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); + + actor_class->paint = empathy_rounded_actor_paint; +} + +ClutterActor * +empathy_rounded_actor_new (void) +{ + return CLUTTER_ACTOR ( + g_object_new (EMPATHY_TYPE_ROUNDED_ACTOR, NULL)); +} diff --git a/src/empathy-rounded-actor.h b/src/empathy-rounded-actor.h new file mode 100644 index 000000000..e4c83b078 --- /dev/null +++ b/src/empathy-rounded-actor.h @@ -0,0 +1,63 @@ +/* + * empathy-rounded-actor.h - Header for EmpathyRoundedActor + * Copyright (C) 2011 Collabora Ltd. + * @author Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __EMPATHY_ROUNDED_ACTOR_H__ +#define __EMPATHY_ROUNDED_ACTOR_H__ + +#include <glib-object.h> +#include <clutter-gtk/clutter-gtk.h> + +G_BEGIN_DECLS + +typedef struct _EmpathyRoundedActor EmpathyRoundedActor; +typedef struct _EmpathyRoundedActorClass EmpathyRoundedActorClass; + +struct _EmpathyRoundedActorClass { + GtkClutterActorClass parent_class; +}; + +struct _EmpathyRoundedActor { + GtkClutterActor parent; +}; + +GType empathy_rounded_actor_get_type (void); + +/* TYPE MACROS */ +#define EMPATHY_TYPE_ROUNDED_ACTOR \ + (empathy_rounded_actor_get_type ()) +#define EMPATHY_ROUNDED_ACTOR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), EMPATHY_TYPE_ROUNDED_ACTOR, \ + EmpathyRoundedActor)) +#define EMPATHY_ROUNDED_ACTOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), EMPATHY_TYPE_ROUNDED_ACTOR, \ + EmpathyRoundedActorClass)) +#define EMPATHY_IS_ROUNDED_ACTOR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), EMPATHY_TYPE_ROUNDED_ACTOR)) +#define EMPATHY_IS_ROUNDED_ACTOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), EMPATHY_TYPE_ROUNDED_ACTOR)) +#define EMPATHY_ROUNDED_ACTOR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), EMPATHY_TYPE_ROUNDED_ACTOR, \ + EmpathyRoundedActorClass)) + +ClutterActor *empathy_rounded_actor_new (void); + +G_END_DECLS + +#endif /* #ifndef __EMPATHY_ROUNDED_ACTOR_H__*/ diff --git a/src/empathy-video-src.c b/src/empathy-video-src.c index 15d8f79e1..ceb344215 100644 --- a/src/empathy-video-src.c +++ b/src/empathy-video-src.c @@ -123,8 +123,8 @@ empathy_video_src_init (EmpathyGstVideoSrc *obj) /* allocate any data required by the object here */ if ((element = empathy_gst_add_to_bin (GST_BIN (obj), - NULL, "gconfvideosrc")) == NULL) - g_error ("Couldn't add \"gconfvideosrc\" (gst-plugins-good missing?)"); + NULL, "v4l2src")) == NULL) + g_error ("Couldn't add \"v4l2src\" (gst-plugins-good missing?)"); /* we need to save our source to priv->src */ priv->src = element; @@ -361,3 +361,27 @@ out: return result; } +void +empathy_video_src_change_device (EmpathyGstVideoSrc *self, + const gchar *device) +{ + EmpathyGstVideoSrcPrivate *priv = EMPATHY_GST_VIDEO_SRC_GET_PRIVATE (self); + GstState state; + + gst_element_get_state (priv->src, &state, NULL, 0); + + gst_element_set_state (priv->src, GST_STATE_NULL); + g_object_set (priv->src, "device", device, NULL); + gst_element_set_state (priv->src, state); +} + +gchar * +empathy_video_src_dup_device (EmpathyGstVideoSrc *self) +{ + EmpathyGstVideoSrcPrivate *priv = EMPATHY_GST_VIDEO_SRC_GET_PRIVATE (self); + gchar *device; + + g_object_get (priv->src, "device", &device, NULL); + + return device; +} diff --git a/src/empathy-video-src.h b/src/empathy-video-src.h index fae5563eb..6a88b79eb 100644 --- a/src/empathy-video-src.h +++ b/src/empathy-video-src.h @@ -81,6 +81,10 @@ void empathy_video_src_set_channel (GstElement *src, guint empathy_video_src_get_channel (GstElement *src, EmpathyGstVideoSrcChannel channel); +void empathy_video_src_change_device (EmpathyGstVideoSrc *self, + const gchar *device); +gchar * empathy_video_src_dup_device (EmpathyGstVideoSrc *self); + G_END_DECLS #endif /* #ifndef __EMPATHY_GST_VIDEO_SRC_H__*/ |